所谓对象数组,就是指包含了一组相关的对象,但是在对象数组的使用中读者一定要清楚一点:数组一定要开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是 null 值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。
对象数组的声明:
类 对象数组名称[] = new 类[数组长度];
实例 1 代码:动态初始化对象数组
package self.learn.objectarray;
public class Person { // 定义 Person 类
private String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() { // 取得姓名
return this.name;
}
}
package self.learn.objectarray;
public class ObjectArrayDemo {
public static void main(String[] args) {
Person per[] = new Person[3]; // 声明一个对象数组
// 对象数组初始化前,每一个元素都是默认值
System.out.println("=============== 数组声明 ================");
for(int i = 0; i < per.length; i++) {
System.out.print(per[i]+"、");
}
// 分别为数组中的每一个元素初始化,每一个都是对象,都需要单独实例化
per[0] = new Person("张三");
per[1] = new Person("李四");
per[2] = new Person("王五");
System.out.println("\n=============== 对象实例化 ================");
for(int i = 0; i < per.length; i++) {
System.out.print(per[i].getName()+"、");
}
}
}
运行结果截图:
与数组初始化方式一样,对象数组也分为静态初始化和动态初始化。以上操作就是数组的动态初始化,静态初始化代码如下:
实例 2 代码:静态初始化对象数组
package self.learn.objectarray;
public class ObjectArrayDemo {
public static void main(String[] args) {
Person per[] = {new Person("张三"),new Person("李四"),new Person("王五")}; // 声明一个对象数组
System.out.println("=============== 数组输出 ================");
for(int i = 0; i < per.length; i++) {
System.out.print(per[i].getName()+"、");
}
}
}
运行结果截图:
主方法中的 String args[] 就是个对象数组。
在主方法中,可以使用 String args[] 接收初始化参数,实际上这里的 String 本身就是一个类,所以在主方法中的参数本身就是以对象数组的形式出现的。