由于内部静态方法我们:
- 无法对非静态字段进行静态引用
醇>
但根据这里的答案:Are local variables in static methods also static?
- 静态方法中的局部变量只是静态方法中的局部变量。他们不是静态的,并且他们在任何方面都不是特别的。
醇>
我的演绎(2)和Ernests答案(3)中的陈述之间存在冲突,我无法解释。
有人可以解释我的演绎是否错误,为什么会这样? 如果我没有错,问题的正确答案是什么?#34;静态方法中的局部变量也是静态的" ?
编辑:我不对局部变量或成员变量(字段)感到困惑a 静态是。
我只是想到:
IF "static methods cannot make reference to non static field"
AND "fields are variables"
然后 "variables in static methods are also static"
用静态方法制作变量两者本地&&静态
谢谢。
答案 0 :(得分:5)
A field cannot be referred by a static method
因为它属于类的 实例 ,因此它不在静态方法的中范围
局部变量永远不会是静态的。通过“局部”变量,可以理解在代码块中声明和使用的变量,无论该代码块是静态初始化器,类初始化器还是方法/构造器体。这些变量的范围当然是由声明它们的代码块决定的。
不要与类(字段)中声明的变量混合,无论它们是实例变量(非静态;每个实例一个)还是类变量(静态;每个类一个)。
答案 1 :(得分:1)
局部变量不是字段。
答案 2 :(得分:1)
基本上每次输入静态或非静态方法时,都会为您在该块中声明的每个变量保留内存。退出块时释放该存储器。 (退出方法或退出{}块。局部变量的生命周期始终是您声明它们的块。
答案 3 :(得分:0)
您的异常中的简单冲突是您希望局部变量是一个字段。哪个不是真的。
一个局部变量就在一个方法中。如果这种方法是私有的,公共的,静态的,最终的或其他任何东西都无关紧要。
当一个字段与Object实例一起使用时。
静态领域与全班同居。