有两个变量a和b,未初始化。a变量属于 class Example1,b变量属于 class Main。我们知道,如果我们没有在 java 中初始化任何变量,那么它就会采用默认值。但是当我想打印Main类的变量时,它显示初始化错误。但是当我调用Example1类变量时,它成功执行并给出默认值。
其背后的确切原因是什么?
class Example1 {
int a;
}
public class Main
{
public static void main(String[] args) {
int b;
Example1 e = new Example1();
System.out.println(e.a); // output: 0
System.out.println(b); // error: variable a might not have been initialized
}
}
Run Code Online (Sandbox Code Playgroud)
当你写:
int b; // this is declaration
Run Code Online (Sandbox Code Playgroud)
int b;是一个局部变量。方法局部变量在使用之前需要初始化。这就是你出错的原因。
当你写的时候
int b = 0; // this is initialization
Run Code Online (Sandbox Code Playgroud)
当你写:
Example1 e = new Example1(); // This is an initialization
Run Code Online (Sandbox Code Playgroud)
当声明为类成员时,原始默认值为零。
| 归档时间: |
|
| 查看次数: |
186 次 |
| 最近记录: |