java关于变量初始值的问题

int x;
System.out.println(x);
这段会报错,而如果是以下的代码却不会报错
class A{
int x;
int getX(){
return x;
}
void print(){
System.out.println(x);
}
}
原因在哪


拉莫斯之舞
浏览 478回答 4
4回答

达令说

int x只是声明,java规定局部变量使用前必须初始化,否则编译不通过。而第二个是类内部的成员变量,编译器自动初始化成员变量

白板的微信

说法同上,java编译器初始化java类时,会先初始化成员变量。int默认为0.使用局部变量由于没有初始化,所以需要显示赋值。建议你去看看java类是怎么初始化。

慕斯王

在类中定义的成员变量如果你没有初始化java会自动帮你初始化,当然如果你定义的是局部变量就必须初始化了,否则编译会报搜索错。

小怪兽爱吃肉

类的成员变量 会有默认的初始化值,而一般变量不会有默认的初始化
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java