我是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辆汽车。
有什么想法吗?谢谢
答案 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
方法。
此外,还添加了一种公共方法来向车库添加汽车。 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中。祝你好运