问题描述:
java 对象数组的使用
问题解决:
数组元素可以是任何类型(只要所有元素具有相同的类型)
数组元素可以是基本数据类型
数组元素也可以是类对象,称这样的数组为对象数组。在这种情况下,数组的每一个元素都是一个对象的引用。
例如
BankAccount [ ] accounts;或 BankAccount accounts[ ];
定义了一个存储BankAccount类对象的数组。
与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[ ]中不需指明数组中元素的个数,即数组长度,而且对于如上定义的数组是不能引用的,必须经过初始化才可以引用。
对象数组初始化
分为静态初始化和动态初始化
静态初始化:在定义数组的同时对数组元素进行初始化, 例如:
BankAccount[] accounts = { new BankAccount(“Zhang", 100.00),
new BankAccount(“Li", 2380.00),
new BankAccount(“Wang", 500.00),
new BankAccount(“Liu", 175.56),
new BankAccount(“Ma", 924.02)
};
动态初始化:使用运算符new为数组分配空间,对于基本类型的数组,其格式如下:
type arrayName[ ]=new type[arraySize];
type[ ] arrayName=new type[arraySize];
对于对象数组,使用运算符new只是为数组本身分配空间,并没有对数组的元素进行初始化。即数组元素都为空,如图。
具体实例
注:
以上OArray[] array=new OArray[5];只是对象数组本身分配空间,并没有对数组元素进行初始化
因此运行程序会报错:
出错行为红色框中内容
正确的对象数组使用方法:
注:
如上使用new为对象数组分配空间,然后对数组元素进行初始化。
注:
对于基本数据类型,采用new初始化数组时,数组元素也进行了相应的初始化。