在Java中所有的数据类型均可以定义为数组,即除了基本数据类型的数据定义为数组外,引用数据类型也可以定义数组,这样的数组就成为对象数组,对象数组的定义可以采用以下的形式完成。
对象数组动态初始化:类 对象数组名称[] = new 类 [长度];
对象数组静态初始化:类 对象数组名称[] = new 类[]{实例化对象,实例化对象,…};
接下啊通过一组简单的代码了解一下使用动态初始化定义对象数组
class person{ //引用类型
private String name; //成员属性
private int age; //成员属性
public String getName() { //相应的get、setter方法
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public person(String name, int age) { //属性初始化
this.name = name; //为name属性赋值
this.age = age; //为age属性赋值
}
public person() {
}
public String getInfo(){ //获取对象信息
return "姓名:" + this.name + "、年龄:" + this.age;
}
}
public class JavaDemo2 {
public static void main(String[] args) {
person per[] = new person[3]; //对象数组动态初始化
per[0] = new person("张三", 20); //为数组赋值
per[1] = new person("李四", 18); //为数组赋值
per[2] = new person("王五",22); //为数组赋值
for (int i = 0; i < per.length; i++) { //循环输出
System.out.println(per[i].getInfo());
}
}
}
本程序利用对象数组的动态初始化开辟了3个元素的数组内容,随后为数组的每一个对象进行了对象实例化操作。
对象数组静态初始化与动态初始化两者的本质目标相同,静态初始化优势在于声明对象数组时就可以传递若干个实例化对象,这样可以避免数组中每一个元素单独实例化。
在对对象数组静态初始化的举例:
class person{ //引用类型
private String name; //成员属性
private int age; //成员属性
public String getName() { //相应的get、setter方法
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public person(String name, int age) { //属性初始化
this.name = name; //为name属性赋值
this.age = age; //为age属性赋值
}
public person() {
}
public String getInfo(){ //获取对象信息
return "姓名:" + this.name + "、年龄:" + this.age;
}
}
public class JavaDemo2 {
public static void main(String[] args) {
person per[] = new person[] {
new person("张赛楠",15),new person("阿迪王",45),new person("辛巴",22)
};
for (int i = 0; i < per.length; i++) {
System.out.println(per[i].getInfo());
}
}
}
其两种的运行结果如下:
在该程序中数组创建时通过person类的构造方法实例化了若干个对象,并且使用这些对象作为对象数组中的内容。