在Java程序开发中,在自定义自己的类的时候,如果这个类的成员变量是基本的数据类型,就算声明的时候没有进行初始化,系统也会自动给其初始化一个值,但是方法里面的局部变量则必须要声明一个初值,否则无法通过编译(eclipse中):
public class Test1 {
public static void main(String[] args) {
DataTest data = new DataTest();
}
public static class DataTest{
int a;
float b;
double c;
boolean d;
public DataTest() {
System.out.println("int:" + a);
System.out.println("float:" + b);
System.out.println("double:" + c);
System.out.println("boolean:" + d);
}
public void test(){
int aa;
System.out.println("int:" + aa);//无法通过编译
}
}
}
如上面的代码片所示,DataTest类种的成员变量并没有赋初值,但是当我创建一个DataTest对象并打印成员变量的时候,系统的输出如下:
int:0
float:0.0
double:0.0
boolean:false
所以系统是会给成员变量赋初值的,其关系对应如下:
int ——> 0
float ——> 0.0
double ——>0.0
boolean ——>false
但是在方法test()中定义的aa则不同,其无法通过编译器的编译会报错。