Java -静态方法中的局部变量

8i9zcol2  于 2023-03-06  发布在  Java
关注(0)|答案(4)|浏览(317)

因为在静态方法中我们:
1.无法对非静态字段进行静态引用
1.那么静态方法中的局部变量应该也是static
但根据这里的回答:静态方法中的局部变量也是静态的吗?
1.静态方法中的局部变量只是静态方法中的局部变量,它们不是静态的,它们在任何方面都没有特殊性。
在我的推论(2)和从欧内斯特的回答(3)中得到的陈述之间有一个我无法解释的冲突。
有人能解释一下我的推论是不是错了吗?为什么会错?
如果我没有错的话,"静态方法中的局部变量也是静态的吗"这个问题的正确答案是什么?

    • 编辑:局部变量成员变量(字段)静态**是什么感到困惑。

我只是在想:

    • 如果**"static methods cannot make reference to non static field""fields are variables",则"variables in static methods are also static"

使静态方法中的变量同时局部&&静态
谢谢你。

yzckvree

yzckvree1#

某个字段不能由静态方法引用,因为它属于 Class 的*Instance***,因此超出了静态方法的作用域**。
局部变量从来不是静态的。“局部”变量是指在代码块中声明和使用的变量,无论该代码块是静态初始化器、类初始化器还是方法/构造函数体。此类变量的作用域当然由声明它们的代码块决定。
不要与类(字段)中声明的变量混合,无论它们是示例变量(非静态;每个示例一个)或类变量(静态的;每个类一个)。

qhhrdooz

qhhrdooz2#

局部变量不是字段。

xvw2m8pv

xvw2m8pv3#

1.在方法中声明的变量存在于堆栈中。这些变量称为局部变量
1.声明为静态的变量在类中是活的。这些被称为变量。(尽管它们经常被称为静态变量)
1.类内部声明为非静态的变量存在于特定的示例中,它们被称为Instance变量。
基本上,每次你进入一个静态或非静态方法时,都会为你在该块中声明的变量保留内存。当块退出时,这些内存会被释放。(从一个方法退出,或者退出一个{ }块。局部变量的生命周期总是你在其中声明它们的块。

dhxwm5r4

dhxwm5r44#

异常中的简单冲突是你期望局部变量是一个字段,这是不正确的。
一个局部变量只是存在于一个方法中,无论这个方法是私有的,公有的,静态的,最终的还是其他的。
当字段与Object示例一起存在时。
一个静态场和类一起存在。

相关问题