我有2个课程:产品和房间。 我希望用户能够说出数组的大小,创建一个Object Room并输入一个int。
public class Room{
private int n;
private int count = 0;
Product [] space = new Product[n];
public Room(int n){
this.n = n;
}
为什么构造函数不使用输入n创建数组,我给他? 我有什么想法我做错了吗?
答案 0 :(得分:10)
数组在构造函数体之前初始化,当n
仍为0
时(默认情况下),因此它的长度为0
。
您需要在构造函数体中初始化它:
public Room(int n){
this.n = n;
this.space = new Product[n];
}
答案 1 :(得分:1)
试试
public Room(int n){
this.n = n;
this.space = new Product[n];
}
答案 2 :(得分:1)
你不需要额外的字段( n 或 count ),只需给出大小,然后在构造函数中初始化数组......剩下的信息是数组对象本身(array.lenght等)
public class Room{
Product [] space;
public Room(int n){
space = new Product[n]
}
}
答案 3 :(得分:1)
您需要在构造函数中初始化数组。
public Room(int n) {
this.n = n;
this.space = new Product[n];
}
否则,当您在外面执行此操作时,n
的默认值为0
,并且创建的数组的大小也为0
。基本没用。