为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

摇曳的蔷薇 2022-06-04 15:11:34
我是 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 辆汽车。有任何想法吗?谢谢
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

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


此外,添加一个公共方法来将汽车添加到车库。这就是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 中运行。祝你好运


查看完整回答
反对 回复 2022-06-04
?
蛊毒传说

TA贡献1895条经验 获得超3个赞

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


public Garage()

{

   Garage = new Car [10]; 

}

当您需要在数组中添加 Car 对象时,您可以使用new关键字创建 Car 类的对象。例如,


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


查看完整回答
反对 回复 2022-06-04
?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

您的问题是构造函数的二重奏正如您在 Car.java 中看到的那样

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

您正在使用的构造函数需要一个字符串输入,尝试一个没有输入的构造函数这应该可以工作。


查看完整回答
反对 回复 2022-06-04
  • 3 回答
  • 0 关注
  • 230 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号