在java中创建汽车类

时间:2014-09-29 03:38:24

标签: java

好的,我需要编写生成此文件的代码

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进行任何更改。

5 个答案:

答案 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个参数的构造函数。