首页 > java 构造函数问题

java 构造函数问题

假如有一个Test类如下:

public class Test {

    public static void main(String[] args) {
        Test[] test = new Test[10];
    }
}

在main函数new一个类的数组,这时是怎么调用构造函数的?


Test test = new Test();
相当于:
Test test; //p1
test = new Test(); //p2

首先 p1,创建 test,为 test 分配空间,此时不能使用该变量。
p2 中,先执行 new Test(),new 创建一个 Test 对象,为新建对象分配空间并默认初始化(二进制位置0),然后是显示初始化,就是类中属性的默认值,最后才是调用构造方法赋值。然后执行=,将对象赋给 test。


用这段代码试一下就知道了

public class Test {

    public static void main(String[] args) {
        Test[] test = new Test[10];
    }

    public Test(){
        System.out.println("Call Method");
    }
}

答案是没有调用构造方法


此时没有调用构造方法


此时还没调用构造函数

Test[] test = new Test[10]

只是说明test数组里面可以存放10个Test类型的对象,现在test数组里面的值都是null的

【热门文章】
【热门文章】