在Java中,对象数组是存储对象引用的数组。这意味着数组的每个元素都可以指向一个对象实例。对象数组可以用于存储任何类型的对象,只要这些对象都是同一个类的实例,或者它们都是某个共同父类的子类。
声明对象数组
声明对象数组的基本语法如下:
类名[] 数组名;
或者
类名 数组名[];
创建对象数组
创建对象数组时,你可以指定数组的大小,这将分配足够的空间来存储指定数量的对象引用。
类名[] 数组名 = new 类名[数组大小];
for (int i = 0; i < 数组名.length; i++) {
数组名[i] = new 类名();
}
示例
假设有一个名为Student
的类,下面是如何声明、创建和初始化一个Student
对象数组的示例:
class Student {
String name;
int age;
Student(String name, int age) {
this.name = name;
this.age = age;
}
}
public class Test {
public static void main(String[] args) {
Student[] students = new Student[3];
students[0] = new Student("Alice", 20);
students[1] = new Student("Bob", 22);
students[2] = new Student("Charlie", 24);
for (Student student : students) {
System.out.println(student.name + " is " + student.age + " years old.");
}
}
}
在这个示例中,Student
类有两个属性:name
和age
。在main
方法中,我们创建了一个Student
对象数组,并初始化了三个Student
对象。然后,我们遍历数组并打印出每个学生的姓名和年龄。
运行结果
Alice is 20 years old.
Bob is 22 years old.
Charlie is 24 years old.
代码详解
这段代码首先定义了一个Student
类,该类有两个属性:name
(姓名)和age
(年龄),以及一个构造函数来初始化这两个属性。
然后,在Test
类的main
方法中,创建了一个Student
类型的数组students
,其大小为3。接着,通过调用Student
类的构造函数,为数组的每个元素(即每个Student
对象)分配了姓名和年龄。
最后,使用增强型for
循环(也称为"for-each"循环)遍历students
数组。在循环体内,通过访问每个Student
对象的name
和age
属性,并使用System.out.println
方法打印出每个学生的姓名和年龄。
因此,输出将按照数组中的顺序(即Alice、Bob、Charlie)显示每个学生的姓名和年龄。