你在bank中声明了customers对象数组,没有初始化,没有分配内存,不可用。然后你在构造器bank()初始化另一个customers对象数组,但是在addCustomer方法中是不可见的。所以在bank类中初始化对象数组customers的大小,数组才可以使用 public class Bank{ private Customer customers[] = new Customer[100] ; //银行账户的当前余额
你犯了重复声明的错误,Customer customers[]在全局变量中声明了,在构造函数中就不要再声明了,不然就不是全局变量了,只是构造函数内的局部变量,bank的构造器改为如下 public Bank(){ //?????添加一个公有构造方法,用于将customers数组初始化为一个合适的大小(最小为5)。 customers[] = new Customer[100]; //每次用的时候都要再分空间 //去掉Customer的声明 for(int i=0;i<100;i++){ customers[i]=new Customer(" "," "); //初始化数组 } }
构造函数中的代码:Customer customers[] = new Customer[100];只是初始化局部变量,没有初始化对象属性 应该是:customers[] = new Customer[100];
初学java,谢谢大家的帮助。第一次在这上面发帖求助,没想到收到这么多回复。 问题解决了。 不过应该是改成:customers = new Customer[100];(左侧customers后没有【】)。
红色字体部分是不符合语法的, 一般定义对象是这样的:
Customer cust = new Customer();
public class Bank{
private Customer customers[] = new Customer[100] ; //银行账户的当前余额
public Bank(){ //?????添加一个公有构造方法,用于将customers数组初始化为一个合适的大小(最小为5)。 customers[] = new Customer[100]; //每次用的时候都要再分空间 //去掉Customer的声明
for(int i=0;i<100;i++){
customers[i]=new Customer(" "," "); //初始化数组
}
}
应该是:customers[] = new Customer[100];
问题解决了。
不过应该是改成:customers = new Customer[100];(左侧customers后没有【】)。