nr5*_*nr5 1 java constructor calling-convention
class A
{
static int i;
A()
{
System.out.println(++i);
}
public static void main(String h[])
{
A obj[] = new A[30];
}
}
Run Code Online (Sandbox Code Playgroud)
obj [30] =新A [30]; : - 这一行应该调用默认构造函数30次?
Rei*_*eus 12
这条线
A obj[30] = new A[30];
Run Code Online (Sandbox Code Playgroud)
不会调用构造函数A.它创建了30个未实例化的引用A;
要实例化30个对象引用,可以使用:
A obj[] = { new A(), new A(), ..28 more ->
};
Run Code Online (Sandbox Code Playgroud)
或者在这种情况下更好的给定元素数量:
for (int i=0; i < obj.length; i++) {
obj[i] = new A();
}
Run Code Online (Sandbox Code Playgroud)
注意,30在数组大小声明中的第一次使用是非法的.
A obj[30] = new A[30];
^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8577 次 |
| 最近记录: |