2011-04-19 67 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;