JAVA与C++ 对对象数组的不同处理 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- JAVA与C++ 对对象数组的不同处理 (http://www.webasp.net/article/16/15823.htm) |
| -- 作者:未知 -- 发布日期: 2004-12-28 |
| 问题:
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]) |
| webasp.net |