2 wydawds wydawds 于 2014.05.12 12:55 提问

java关于变量初始值的问题

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

4个回答

paperbook
paperbook   2014.05.12 13:53
已采纳

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

vs_youbang
vs_youbang   2014.05.12 21:45

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

zhangxiaolei11111111
zhangxiaolei11111111   2014.06.27 16:08

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

u011289525
u011289525   2014.09.19 20:51

类的成员变量 会有默认的初始化值,而一般变量不会有默认的初始化

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!