假如有一个Test类如下:
public class Test {
public static void main(String[] args) {
Test[] test = new Test[10];
}
}
在main函数new一个类的数组,这时是怎么调用构造函数的?
假如有一个Test类如下:
public class Test {
public static void main(String[] args) {
Test[] test = new Test[10];
}
}
在main函数new一个类的数组,这时是怎么调用构造函数的?
用这段代码试一下就知道了
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();
相当于:
Test test; //p1
test = new Test(); //p2
首先 p1,创建 test,为 test 分配空间,此时不能使用该变量。
p2 中,先执行 new Test(),new 创建一个 Test 对象,为新建对象分配空间并默认初始化(二进制位置0),然后是显示初始化,就是类中属性的默认值,最后才是调用构造方法赋值。然后执行=
,将对象赋给 test。
15 回答8.3k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
此时还没调用构造函数
只是说明test数组里面可以存放10个Test类型的对象,现在test数组里面的值都是null的