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了。