2011-04-19 51 views
0

對以前的錯誤進行了更正,現在出現此錯誤。庫存程序的Java代碼第3部分不會編譯

C:\Documents and Settings\AdminUser\My Documents\InventoryPart3.java:93: invalid method declaration; return type required 
public Television(int ItemNumber, String ProductName, int UnitsStock, double UnitPrice, String mfgName) { 
    ^
1 error 

Tool completed with exit code 1 

class Television { //class name and attributes 

    private String ItemNumber; //item # of product 
    private String ProductName; //product name 
    private double UnitsStock; //# of units in stock 
    private double UnitPrice; //Price per unit 
    private String SerialNumber; //serial number of product 
    private double InventoryValue; //The dollar value of the inventory in stock 

//constructor 

public Television (String item, String product, double units, double price, String serial) { 

    ItemNumber = item; 
    ProductName = product; 
    UnitsStock = units; 
    UnitPrice = price; 
    SerialNumber = serial; 

} //end constructor 

///getter and setter methods for Television 

public void setItemNumber (String item) { //setter for item number 
    this.ItemNumber = item; 
} //end setter item number 

public String getItemNumber() { //getter for item number 
    return ItemNumber; 
} //end getter item number 

public void setProductName (String product) { //setter for product name 
    this.ProductName = product; 
} //end setter product name 

public String getProductName() { //getter for product name 
    return ProductName; 
} //end getter product name 

public void setUnitsStock (double units) { //setter for units in stock 
    this.UnitsStock = units; 
} //end setter units in stock 

public double getUnitsStock() { //getter for units in stock 
    return UnitsStock; 
} //end getter units in stock 

public void setUnitPrice (double price) { //setter for unit price 
    this.UnitPrice = price; 
} //end setter unit price 

public double getUnitPrice() { //getter for unit price 
    return UnitPrice; 
} //end getter for unit price 

public void setSerialNumber (String serial) { //setter for serial number 
    this.SerialNumber = serial; 
}//end setter for serial number 

public String getSerialNumber() { //getter for serial number 
    return SerialNumber; 
}//end getter for serial number 



//calculate individual product inventory value 

public double getInventoryValue(){ 
    return UnitsStock * UnitPrice; 

}//end calculate individual product inventory value 


//calculate total inventory value 
public double calculateInventory(){ 
    return UnitPrice * UnitsStock; 
}//end calculate total inventory value 

///end getter and setter methods for Laptop 

} //end class Television 

class Manufacturer extends Television { 
private String manufacturerName; 

//constructor 

public Television(int ItemNumber, String ProductName, int UnitsStock, double UnitPrice, String mfgName) { 
    super(ItemNumber, ProductName, UnitsStock, UnitPrice, ManufacturerName); 

    this.manufacturerName = mfgName; 

}//end constructor 

//getter and setter for class Manufacturer 

public void setmanufacturerName(String mfgName) { 
    this.manufacturerName = mfgName; 
} 

public String getmanufacturerName() { 
    return manufacturerName; 
} 

//end getter and setter for class Manufacturer 

//calculate total inventory value 

public double calculateInventory(){ 
    return ((UnitPrice * UnitsStock)); 

}//end calculate total inventory value 

//calculate restocking fee method 

public double getcalculateRestockFee() { 
    return getInventoryValue(); 

    }//end calculate restocking fee method 

}//end class Manufacturer 
+0

請嘗試編寫更多有用的標題。 「不理解錯誤消息Inverntory第3部分的Java代碼困惑,沮喪需要幫助。」幾乎沒有提供關於你的問題的信息,其中大部分都沒有增加任何價值。這次我爲你做了一個編輯。 – Pops 2011-04-19 04:01:41

+0

我會確保不再犯這個錯誤。所以我遵守規則。 – Raven50 2011-04-19 04:03:46

回答

2

所以有兩個錯誤。第一個出現在文件InventoryPart3.java的第93行。在這行你會發現代碼:

super(ItemNumber, ProductName, UnitsStock, UnitPrice); 

這實際上是一個電視類的構造函數的調用。但是,電視類的構造函數接受5個參數:字符串,字符串,雙精度型,雙精度型,字符串,但僅傳遞4.

第二個錯誤出現在同一個文件的第120行。在這種情況下,您似乎在調用方法,但您忽略了括號。也就是說,代碼應該是:

getInventoryValue() 
+0

C:\ Documents and Settings \ AdminUser \ My Documents \ InventoryPart3.java:93:找不到符號 symbol:構造函數Television(int,java.lang.String,int,double) location:class Television \t \t super ItemNumber,ProductName,UnitsStock,UnitPrice); \t \t^ 1錯誤 使用退出代碼1完成的工具 – Raven50 2011-04-19 03:48:29

0

電視機課程中不存在電視機的構造函數,您正嘗試使用超級製造商類來調用該電視機。請參閱super()調用中的參數和Television構造函數中的實際參數。 getInventoryValue函數在電視類中不存在。因此它爲super.getInventory調用發出錯誤

0

第一個錯誤與您的Television構造函數有關。您的Television構造函數接受5個String,String,double,double,String類型的參數。在您的Manufacturer類中,您使用int,string,int和double調用超類構造函數。在一個子類中,你的super()構造函數調用必須匹配基類(Television)中的構造函數之一。

對於第二個錯誤,您對getInventoryValue的調用有語法錯誤。要調用Java中的一個方法,你必須把括號中的方法名稱後:

return super.getInventoryValue() * 0.10; 

注意,在這種情況下,super.部分是可選的。 getInventoryMethod()存在於超類中,並且不是私有的,因此您可以像這樣從子類中調用它:

return getInventoryValue() * 0.10;