当前位置: 技术问答>java相关
关于初始化问题
来源: 互联网 发布时间:2015-03-21
本文导语: public class AutoIni { int intMember = 100; int intout ; public int aMethod1() { int intLocal ; // compile time error, intLocal need to be initialized ...
public class AutoIni {
int intMember = 100;
int intout ;
public int aMethod1() {
int intLocal ; // compile time error, intLocal need to be initialized
return intLocal;
}
public void aMethod2() {
int intMember = 100;
System.out.println (intMember);
}
public static void main ( String args[] ){
AutoIni ac = new AutoIni();
System.out.println(intout);
ac.aMethod1();
ac.aMethod2();
}
}
为什么intLocal 是没初始化错误,而intout不会报错?
不是说int 的默认值是0吗?
int intMember = 100;
int intout ;
public int aMethod1() {
int intLocal ; // compile time error, intLocal need to be initialized
return intLocal;
}
public void aMethod2() {
int intMember = 100;
System.out.println (intMember);
}
public static void main ( String args[] ){
AutoIni ac = new AutoIni();
System.out.println(intout);
ac.aMethod1();
ac.aMethod2();
}
}
为什么intLocal 是没初始化错误,而intout不会报错?
不是说int 的默认值是0吗?
|
方法内的变量必须进行初始化,因为它们没有默认值。
作为类级别的变量则有默认值
作为类级别的变量则有默认值
|
Java设计者认为,程序设计者在方法不初始化变量是程序员的错误,所以不给默认值。
而在class 中...
给初始值的原因是因为类作为一个'type', 允许普遍的、不特例化现象,所以给出默认值了。
而在class 中...
给初始值的原因是因为类作为一个'type', 允许普遍的、不特例化现象,所以给出默认值了。