添加从一类对象为Array

时间:2019-02-02 16:08:15

标签: java arrays arraylist

我是Java的新手,最近写了一个小程序,使用Arraylist将汽车存储在车库中。现在,我必须将程序转换为仅使用数组。我的问题是,我无法再直接引用Car类来像创建Arraylist一样创建一个Array。

根据输入文件在main方法中创建Car类。

车类代码:

public class Car {

 private final String licensePlate;  // license plate number
 private int timesMoved = 0;    // number of moves car has endured


 public Car(String licenseNum)
 {
  licensePlate = licenseNum;
 }


 public String getlicensePlate()
{
  return licensePlate;
 }


public void incrementTimesMoved()   //increment number of moves by 1
{
  timesMoved = timesMoved + 1;
}


public int getTimesMoved()
{
  return timesMoved;
}

}

在我的车库班上,我有这段代码

public class Garage {

private Car carDeparted;

private ArrayList<Car> Garage; // a list of car objects


 public Garage()
 {
    Garage = new ArrayList<>() ; 
 }
}

这真的很好,所以我用一个数组尝试了同样的想法,但是没有做错

新车库类代码

public class Garage {

private Car carDeparted;

Car [] Garage;  // a list of car objects

/**
  Constructs a garage with no cars.
*/
public Garage()
 {
    Garage = new Car [10]; 

    for (int i = 0; i < Garage.length; i++)
    Garage[i] = new Car();

 }

Garage [i] = new Car();表示错误,因为我需要使用字符串参数来填充它,但是当我拥有arraylist时,我就没有这个问题。

我需要它,因此Array根据所创建的汽车类别在其中最多存储10辆汽车。

有什么想法吗?谢谢

6 个答案:

答案 0 :(得分:1)

有becouse它构造汽车的接受串的ü要添加车无牌照重载汽车构建ER而不串licencenum参数或在乌尔添加随机字符串for循环

答案 1 :(得分:1)

VS97是对的,您从未在ArrayList版本中初始化Car类。在你的阵列版本中,你正试图初始化车,但你没有经过必要的licensePlate参数。

Garage[i] = new Car();

应该是

Garage[i] = new Car(“plate number”);

答案 2 :(得分:1)

如果你想创建这样的一个阵列, 你需要一个空参数constucter添加到汽车类

  public Car() {
    licensePlate ="";
}

答案 3 :(得分:1)

您的问题是哆来构造正如你可以在你的Car.java见

         public Car(String licenseNum)
        {
           licensePlate = licenseNum;
        }

您使用的构造函数需要一个String输入,尝试一个没有输入的构造函数应该可以。

答案 4 :(得分:1)

在ArrayList版本中,您刚刚声明了ArrayList,但未在其中存储任何汽车对象。但是,在代码的数组版本中,您试图将汽车对象存储在其中,根据您的代码,此刻目前无法完成。 所以你就这样做,

public Garage()
{
   Garage = new Car [10]; 
}

而当你需要添加车载对象物的内部阵列,则使用创建Car类的对象new关键字。例如,

Garage[0] = new Car("abc");

答案 5 :(得分:1)

问题是您试图在构造函数中做很多事情,创建一个单独的类来管理车库和汽车,或者为了简单起见,在您的main类中添加一个Garage方法。

p>

此外,还添加了一种公共方法来向车库添加汽车。 main方法就是这样

public static void main(String[] args) {
    Garage garage = new Garage(10); // 10 is the number of cars that can park in the garage
    Car car1 = new Car("ABC123456");
    garage.add(car1);
    Car car2 = new Car("DEF5467467");
    garage.add(car2);
   //more code to test your classes
}

请注意,如果操作正确,此代码将独立于汽车存储方式工作,将其存储在数组或ArrayList中。祝你好运