wydawds
wydawds
2014-05-12 04:55
采纳率: 100%
浏览 2.3k
已采纳

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 05:53
    已采纳

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

    点赞 评论
  • vs_youbang
    vs_youbang 2014-05-12 13:45

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

    点赞 评论
  • zhangxiaolei11111111
    zhangxiaolei11111111 2014-06-27 08:08

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

    点赞 评论
  • u011289525
    sunyang1206 2014-09-19 12:51

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

    点赞 评论

相关推荐