c/c++语言开发共享为什么Java方法中不允许使用静态变量,因为它们在C / C ++函数中?

CC ++中,您可以:

void foo() { static int i = 0; ++i; } 

但是,在Java中,你会得到一个'Illegal modifier for parameter'错误:

 public void foo() { static int i =0; ++i; } 

我不是在寻找原因,为什么或为什么不这是一个好/坏的想法。 我只是好奇为什么这在C / C ++中是合法的,而不是Java

    Java是一种function不佳的语言。 它不愿意添加除最简单集之外的function,这将允许您编写好的程序。 这意味着许多不起眼的function,甚至一些非常有用的function在其他语言中都不可用于Java,因为通常有另一种方法可以做同样的事情,或者更好的方式,或者他们已经确定它是一种function,如果没有它你会更好。

    在这种情况下,我怀疑是因为你可以将字段放在方法之外并做同样的事情。

    顺便说一句:Java确实有方法本地命名类,很少使用它们,如果它们是极简主义的,Java并不真正需要它们。 ;)

    static函数作用域变量在C ++中很有用,可以避免“静态初始化顺序失败”。 在Java中没有必要,因为它具有良好指定的静态初始化顺序。

    我想避免这些变量是好的,因为它会导致令人困惑的行为:

     some_code(); static int x = something(); some_code(); 

    其中something()仅在第一次调用时调用,而其他指令在您使用此函数时随时调用。

    此外,默认情况下不会实现function。

      以上就是c/c++开发分享为什么Java方法中不允许使用静态变量,因为它们在C / C ++函数中?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/549718.html

      (0)
      上一篇 2021年1月14日
      下一篇 2021年1月14日

      精彩推荐