使用构造函数初始化数组 - Java

时间:2017-04-03 11:34:29

标签: java arrays object constructor

我有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创建数组,我给他? 我有什么想法我做错了吗?

4 个答案:

答案 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。基本没用。