首页 > 代码库 > 对象数组

对象数组

对象数组:就是指包含了一组相关的对象。

对象数组的声明:对象数组名称[]=new 类[数组长度];

注意:

需要注意的是,对象数组初始化之前,每一个数字对象都是默认值,并没有实例化,所以需要分别实例化!

1)动态初始化: 对象数组名称[]=new 类[数组长度];

        对象数组名称[i]=new 类(参数,参数,参数,);

2)静态初始化: 对象数组名称[]={new 类(参数,参数),new 类(参数,参数),new 类(参数,参数),}

动态初始化例子:

 

class Person{
    private String name ;        // 姓名属性
    public Person(String name){    // 通过构造方法设置内容
        this.name = name ;        // 为姓名赋值
    }
    public String getName(){
        return this.name ;        // 取得姓名
    }
};
public class ObjectArrayDemo01{
    public static void main(String args[]){
        // 类名称 数组名称[] = new 类名称[长度]
        Person per[] = new Person[3] ;    // 开辟了三个空间大小的数组
        System.out.println("============== 数组声明 =================") ;
        // 对象数组初始化之前,每一个元素都是默认值
        for(int x=0;x<per.length;x++){    // 循环输出
            System.out.print(per[x] + "、") ;    // 因为只是开辟好了空间,所以都是默认值
        }
        // 分别为数组中的每个元素初始化,每一个都是对象,都需要单独实例化    
        per[0] = new Person("张三") ;    // 实例化第一个元素
        per[1] = new Person("李四") ;    // 实例化第二个元素
        per[2] = new Person("王五") ;    // 实例化第三个元素
        System.out.println("\n============== 对象实例化 =================") ;
        for(int x=0;x<per.length;x++){    // 循环输出
            System.out.print(per[x].getName() + "、") ;    // 此时,已经实例化完成了,所以会直接打印出姓名
        }
    }
};

 

静态初始化

class Person{
    private String name ;        // 姓名属性
    public Person(String name){    // 通过构造方法设置内容
        this.name = name ;        // 为姓名赋值
    }
    public String getName(){
        return this.name ;        // 取得姓名
    }
};
public class ObjectArrayDemo02{
    public static void main(String args[]){
        // 声明一个对象数组,里面有三个对象,使用静态初始化方式完成
      Person per[] = {new Person("张三"),new Person("李四"),new Person("王五")} ;
        System.out.println("\n============== 数组输出 =================") ;
        for(int x=0;x<per.length;x++){    // 循环输出
            System.out.print(per[x].getName() + "、") ;    // 此时,已经实例化完成了,所以会直接打印出姓名
        }
    }
};

总结:

必须注意:对象数组中元素必须单独实例化。否则内容就是空。

对象数组