2014-09-29 76 views
-1

好車班,我需要編寫代碼,使這個文件使用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進行任何更改。

回答

4

您已經創建參數的構造函數即public Car(String b, int year, int price, int number)

所以,當你想爲同創建對象一樣,Car car1 = new Car();那麼這將是不可能的。因爲在這裏你正試圖調用默認的構造函數。這不在課堂上。

創建對象時,您需要通過參數。

此外,在Car car2 = new Car("Ford", 2013, 20000);您正在傳遞3個與構造函數不匹配的參數。

要創建一流的汽車的目標,你需要做這樣的事情,

Car c = new Car('Volvo', 2014, 25000, 1234);

+0

@downvoter閱讀我的完整答案,讓我知道downvote的原因 – gprathour 2014-09-29 03:43:48

+0

任何人都在乎給出理由? – gprathour 2014-09-29 03:44:43

+0

對我來說很不錯 – 2014-09-29 03:45:35

4

當創建一個新的對象(CAR1,CAR2等),你沒有經過足夠的變量。你的構造函數需要4個,並且當你嘗試構造一個新的汽車物體時,你最多會給出3個變量。

+0

好吧,那麼我先試着修正什麼呢?對不起,我不擅長這個東西。 – Kyle 2014-09-29 03:45:15

+0

檢查我編輯的問題並確保仍然適用。我無法對HW1Tester文件做任何事情,我需要使Car類自行工作,而無需進行任何其他修改。 – Kyle 2014-09-29 03:50:16

+0

@PM爲什麼你要說從構造函數中刪除參數?爲什麼不在創建對象時傳遞四個參數?重點是什麼? – gprathour 2014-09-29 03:51:25

1

您需要使用不同的參數集編寫重載的構造函數。 當你調用新車(),JAVA是尋找一個構造函數沒有參數,可以新車( 「奧迪」,2013年,25000)一個3個PARAMS等

在Car.java文件:

public Car() {} 

然後你可以用它們的getter和setter設置實例變量(直到你這樣做,它們的值將爲空)。

如果你想,你可以定義更多,但他們的簽名必須不同。例如: public Car(String b, int year) { ... }public Car(String b, int price) {...}不會工作,因爲它們具有相同的簽名。

1

在Car類中,您有一個具有4個參數的構造函數。但是,在主課程中,您將創建一個帶有0或3個參數的汽車。在其他運行代碼中,您必須再添加2個構造函數,一個使用0參數,另一個使用3個參數。

public Car() { 
} 

public Car(String b, int year, int price) { 
    yearModel = year; 
    brand = b; 
    priceModel = price; 
} 
0
public Car() { 
} 

public Car(String b, int year, int price,) { 
    yearModel = year; 
    brand = b; 
    priceModel = price; 
} 

在這種情況下,你必須有4個參數的構造函數。