问题描述
||
对以前的错误进行了更正,现在出现此错误。
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 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
解决方法
因此有两个错误。第一个出现在文件InventoryPart3.java的第93行。在该行上,您将找到以下代码:
super(ItemNumber,ProductName,UnitsStock,UnitPrice);
实际上,这是对电视类构造函数的调用。但是,电视类的构造函数接受5个参数:String,String,double,double,String,但您仅传递4。
第二个错误发生在同一文件的第120行。在这种情况下,您似乎正在调用方法,但是省略了括号。也就是说,代码应为:
getInventoryValue()
,您试图使用super从制造商类中调用的电视的构造方法在电视类中不存在。请在super()调用中查看参数,并在Television构造函数中查看实际参数。电视类中没有getInventoryValue函数,因此它会为super.getInventory调用引发错误,第一个错误与您的电视构造器有关。您的Television构造函数采用5个参数,类型为String,String,double,double,String。在Manufacturer类中,您正在使用int,string,int和double调用超类构造函数。在子类中,您的super()构造函数调用必须与基类(Television)中的构造函数之一匹配。
对于第二个错误,您对getInventoryValue的调用存在语法错误。要在Java中调用方法,必须在方法名称后加上括号:
return super.getInventoryValue() * 0.10;
请注意,在这种情况下,“ 5”部分是可选的。 getInventoryMethod()存在于超类中,并且不是私有的,因此可以从子类中调用它,如下所示:
return getInventoryValue() * 0.10;