在java中,成员初始化在使用之前应该都要保证已经完成初始化。对于在方法体中的局部变量,如果没有使用指定初始化的方法对成员变量进行初始化,编译器会提示一个错误。而对于类的数据成员,编译器会对这些成员赋予默认的初始值,下面这段代码反映了这一点。
1 package test1; 2 3 class InitialValue{ 4 public int i; 5 public boolean b; 6 public char c; 7 public float f; 8 public String s; 9 public InitialValue iv; 10 11 public void info(){ 12 System.out.println("int + " + i); 13 System.out.println("boolean + " + b); 14 System.out.println("char + " + c); 15 System.out.println("float + " + f); 16 System.out.println("String + " + s); 17 System.out.println("reference + " + iv); 18 } 19 } 20 21 public class test{ 22 public static void main(String[] args){ 23 InitialValue iv = new InitialValue(); 24 iv.info(); 25 } 26 }
1 int + 0 2 boolean + false 3 char + 4 float + 0.0 5 String + null 6 reference + null
输出表明,即使类中的成员变量没有进行指定初始化,编译器仍然会给成员变量赋予默认值。