//测试初始化
public class Test {
public static void main(String[] args) {
//4.通过含参构造创建Test对象并调用show()
Test test1 = new Test(99);
test1.show(); //结果为99、0.0、false、null,后面3个都为地址值(其中99为成员变量a的值——因为通过含参构造给它赋值了,所以输出的就不是默认值0了)
//5.通过无参构造创建Test对象并调用show()
/* Test test2 = new Test();
test2.show(); //这种情况输出的结果为0、0.0、false、null(前面4个都为默认值),后面3个都为地址值 */
}
//1.先准备成员变量(位置在类里方法外+不需要手动赋值也有默认值+整个类里都有)
int a; //默认值是0
double b; //默认值是0.0
boolean c; //默认值是false
int[] h; //默认值是null
//1.1.准备数组对象变量,因为是对象,所以结果都是地址值,上面的h这样写是null)
int[] e = new int[]{1, 2}; //静态初始化
int[] f = {3, 4}; //静态初始化,
int[] g = new int[5]; //动态初始化
public Test() {
}
public Test(int a) {
this.a = a; //通过含参构造给成员变量a赋值
}
//2.准备好一个方法
public void show() {
//3.准备好一个局部变量(位置在方法里+必须自己完成初始化+只作用在方法内部)
int d = 999; //局部变量
//当show()被调用时输出成员变量的值们的值
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(h);
System.out.println(e);
System.out.println(f);
System.out.println(g);
}
}
总结:初始化的目的是为了让变量有值,防止使用时出现异常!
扩展
对于类的成员变量,不管程序有没有显示的初始化,java虚拟机都会先自动给它初始化(默认值)
各类型默认值:
- 整数类型(byte、short、int、long)的基本类型变量的默认值为0。
- 单精度浮点型(float)的基本类型变量的默认值为0.0f。
- 双精度浮点型(double)的基本类型变量的默认值为0.0d。
- 字符型(char)的基本类型变量的默认值为"/0000"。
- 布尔型的基本类型变量的默认值为flase。
- 引用类型的变量的默认值为null。
例如:int[] a; //默认值为null。
数组的初始化常见的两种格式:
- 静态初始化。
- 动态初始化。