JAVA与C++ 对对象数组的不同处理

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

问题:

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])

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有