本帖最后由 夏诗瑶 于 2012-9-20 13:25 编辑
其实吧,上面同学都说了答案了。
但是,一可以编译通过,二不能编译通过很多人不理解。这里就简单介绍下:
一其实初始化了一个数组,数组里面放的是接口类型。并没有具体初始化到对象。
所以,一般自定义类型用数组初始化的时候都需要 初始化两次,例子如下:
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
public class PersonTest {
public static void main(String[] args) {
Person[] ps = new Person[3];// 初始化用于存放3个人类型的数组
ps[0] = new Person("张三", 15);//注意这:虽然上面"初始化化了三个人",但实际用到每个人的时候,还是要new对象的
ps[1] = new Person("李四", 16);
ps[2] = new Person("王五", 17);
}
} |