库存程序的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 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;