好的,我需要编写生成此文件的代码
public class HW1tester
{
public static void main(String[] args)
{
Car car1 = new Car();
Car car2 = new Car("Ford", 2013, 20000);
Car car3 = new Car("Audi", 2012, 25000);
Car car4 = new Car();
car2.setPrice(22000);
car2.setYear(2011);
car4.setBrand("Cadillac");
System.out.println("This car is " + car1.getBrand() + ", year " + car1.getYear() + ", price " + car1.getPrice());
System.out.println("This car is " + car2.getBrand() + ", year " + car2.getYear() + ", price " + car2.getPrice());
System.out.println("This car is " + car3.getBrand() + ", year " + car3.getYear() + ", price " + car3.getPrice());
System.out.println("This car is " + car4.getBrand() + ", year " + car4.getYear() + ", price " + car4.getPrice());
System.out.println("The total car number is: " + car1.getNumber());
System.out.println("The total car number is: " + car2.getNumber());
System.out.println("The total car number is: " + car3.getNumber());
System.out.println("The total car number is: " + car4.getNumber());
}
}
到目前为止,我有这个,但我不确定我到底做错了什么。
public class Car
{
private int yearModel;
private String brand;
private int priceModel;
private int numberModel;
public Car(String b, int year, int price, int number)
{
yearModel = year;
brand = b;
priceModel = price;
numberModel = number;
}
public int getYear()
{
return yearModel;
}
public String getBrand()
{
return brand;
}
public int getPrice()
{
return priceModel;
}
public int getNumber()
{
return numberModel;
}
public void setYear(int year)
{
yearModel = year;
}
public void setBrand(String carBrand)
{
brand = carBrand;
}
public void setPrice(int price)
{
priceModel = price;
public void setNumber(int number)
{
numberModel = number;
}
}
每次我现在运行第一个代码时它只会给我car1,car2等错误。我似乎无法看到我做错了什么,我希望有人可以帮助我。顺便说一句,我无法对HW1tester进行任何更改。
答案 0 :(得分:4)
您已创建参数化构造函数,即public Car(String b, int year, int price, int number)
因此,当您尝试为Car car1 = new Car();
创建对象时,它将无法实现。因为在这里你试图调用默认构造函数。这在班上没有。
创建对象时,您需要传递 4 参数。
此外,在Car car2 = new Car("Ford", 2013, 20000);
中你传递了3个与构造函数不匹配的参数。
要创建Car类对象,您需要执行类似的操作
Car c = new Car('Volvo', 2014, 25000, 1234);
答案 1 :(得分:4)
创建新对象(car1,car2等)时,您没有传入足够的变量。您的构造函数需要4,并且在尝试构造新的汽车对象时,您最多只能提供3个变量。
答案 2 :(得分:1)
您需要编写具有不同参数集的重载构造函数。 当你打电话给新的Car()时,java正在寻找没有参数的新车,新车(“奥迪”,2013年,25000),其中有3辆车等。
你的Car.java文件中的:
public Car() {}
然后你可以用它们的getter和setter设置实例变量(直到你这样做,它们的值将为null)。
如果您愿意,可以定义更多,但他们的签名必须不同。例如:
public Car(String b, int year) { ... }
和public Car(String b, int price) {...}
无法使用,因为它们具有相同的签名。
答案 3 :(得分:1)
在Car类中,您有一个包含4个参数的构造函数。但是在主类中,您创建一个具有0或3个参数的Car。在其他运行代码的过程中,你必须再添加2个构造函数,一个带0参数,另一个带3个参数。
public Car() {
}
public Car(String b, int year, int price) {
yearModel = year;
brand = b;
priceModel = price;
}
答案 4 :(得分:0)
public Car() {
}
public Car(String b, int year, int price,) {
yearModel = year;
brand = b;
priceModel = price;
}
在这种情况下,你有一个有4个参数的构造函数。