我正在学习 Java 中的链表,我有三个文件Main.java
, List.java
and Node.java
。当我这样做时,我遇到了一个问题,为什么我应该初始化在方法中声明的局部变量,而不是在类中声明的类变量。
In the first pic, I declared head as class variable, it doesn't throw any error.
![](https://i.stack.imgur.com/FduJ3.png)
但在第二张图片中,我将 head 初始化为局部变量。现在,它会抛出一个初始化局部变量的错误。
声明为类变量时有什么区别?
![enter image description here](https://i.stack.imgur.com/BBMc0.png)
Java 初学者。
更新:我知道如何解决这个问题,但我不清楚为什么 Java 默认情况下只初始化类变量而不初始化局部变量。
不是基元的静态/非静态字段,例如您的Node
,初始化于null
默认情况下。
原始静态/非静态字段获取其默认值。
还有另一种情况,一些变量被默认初始化:当你实例化一个数组时。每个单元格代表都有默认值,关于类型:
-
0
for int
-
null
for Integer
- etc.
但是,在本地方法中,编译器不会为本地变量分配默认值。
这就是为什么您的 IDE 会发出警告:“可能未初始化!”。
要了解原因,您可能对此感兴趣post.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)