java类对象数组返回值

public class bank {
private int numberOfCustomers[];
private Customer customers[];

public bank()
{
    customers = new Customer[5];
}
public void addCustomer(String fastname,String lastname,int i)
{
    customers[i]=new Customer(fastname,lastname);
    System.out.println(customers[i]);
}

public void getCustomers()
{
    for(Object customerss:customers)
    {
        System.out.println(customerss);
    }
}}

public class bankTest {
public static void main(String []args)
{
bank b =new bank();

    b.addCustomer("ss", "sss", 0);

    b.getCustomers();

}

}
我这个Customers是另一个类为类型
当我用test类对象返回值的时候 给我的值是这样的
bank.Customer@78aea5cd
bank.Customer@78aea5cd
null
null
null
null
这个值是怎么回事

你这个customers数组长度为5啊,然后add的时候你传入的i为0,也就是第一个啊,后边4个你都没有创建对象当然是null了!

第一个bank.Customer@78aea5cd 是addCustomer方法里打印出来的customers[0]对象哈希码
第二个bank.Customer@78aea5cd 是getCustomers方法打印出来的customers[0]对象哈希码
因为bank对象的customers属性数组长度为5,只有第1个有赋值,所以剩下的4个都是空值输出为null

这不是很正常吗,b.addCustomer("ss", "sss", 0);创建了一个Customer对象,并把它放入customers[]数组的第一个位置,System.out.println(customers[i]);默认去掉用toString方法,返回对象类+@+它的h16进制的hashcode码

之后掉用第二个方法,

便利customers[]数组,它只有第一个有值,而且就是你上面添加进去的Customer类,所以第一个跟上面的显示相同,之后4个位置没有添加东西就是null了。