将类中的对象添加到数组中

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


Car 类是在基于输入文件的 main 方法中创建的。


车类代码:


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();


 }

车库[i] = new Car(); 说错误,因为我需要字符串参数来填充它,但是当我有 arraylist 时,我没有这个问题。


我需要它,以便数组根据创建的汽车类在其中存储多达 10 辆汽车。


有任何想法吗?谢谢


摇曳的蔷薇
浏览 231回答 3
3回答

德玛西亚99

问题是您尝试在构造函数中做很多事情,创建一个单独的类来管理车库和汽车,或者为简单起见向您的类添加一个main方法。Garage此外,添加一个公共方法来将汽车添加到车库。这就是main方法的样子public static void main(String[] args) {&nbsp; &nbsp; Garage garage = new Garage(10); // 10 is the number of cars that can park in the garage&nbsp; &nbsp; Car car1 = new Car("ABC123456");&nbsp; &nbsp; garage.add(car1);&nbsp; &nbsp; Car car2 = new Car("DEF5467467");&nbsp; &nbsp; garage.add(car2);&nbsp; &nbsp;//more code to test your classes}请注意,如果操作正确,此代码将独立于您存储汽车的方式,在数组或 ArrayList 中运行。祝你好运

蛊毒传说

在 ArrayList 版本中,您刚刚声明了 ArrayList 但没有在其中存储任何汽车对象。但是在您的代码的数组版本中,您试图将汽车对象存储在其中,根据您的代码,目前无法完成。所以你只要这样做,public Garage(){&nbsp; &nbsp;Garage = new Car [10];&nbsp;}当您需要在数组中添加 Car 对象时,您可以使用new关键字创建 Car 类的对象。例如,Garage[0] = new Car("abc");

慕尼黑8549860

您的问题是构造函数的二重奏正如您在 Car.java 中看到的那样&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;Car(String&nbsp;licenseNum) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;licensePlate&nbsp;=&nbsp;licenseNum; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}您正在使用的构造函数需要一个字符串输入,尝试一个没有输入的构造函数这应该可以工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java