问题:
public class test
{
public static void main(string[] args)
{
person[] a = new person[2];
for(int i = 0; i < 2; i++)
{
a[i].age = i; //空指针异常
system.out.println(a[i].age);
}
}
}
class person
{
public int age;
public person(int age)
{
this.age = age;
}
}
思考:
数组类是一个由虚拟机支持的特殊类,它是由操作码newarray创建的,是array类的实例。person[] a = new person[2]只是建立了一个array对象对对象元素person[0] person[1]并未分配空间(这一点与c++不同c++在创建一个对象数组是同时也已为数组中的对象分配了空间 person* a = new person[2])
