[英]Parameters cannot be resolved as a variable?
這是一個相當基本的程序。 當我嘗試打印summaryOutput
方法和billOutput
方法時,出現錯誤,提示無法將參數解析為變量。
public class PizzaDriver{
public static void main(String[] args) {
PizzaOrder order = new PizzaOrder();
PizzaOutput output = new PizzaOutput();
PizzaInput input = new PizzaInput();
System.out.println(output.menuOutput());
input.readInput(order);
System.out.println(summaryOutput1 = output.summaryOutput (numCheese, numPepperoni, numSausage, numVegetarian));
System.out.println(output.billOutput(String billOutput));
}
}
公共類PizzaOutput {
public String menuOutput()
{
String menuOutput1 = "Item \t Price \nCheese \t $2.40 \n Sausage \t $3.00 \nPepperoni \t $3.00 \nVegertarian \t $3.00";
return menuOutput1;
}
public void summaryOutput(int numCheese,int numPepperoni,int numSausage,int numVegetarian)
{
System.out.println("Cheese: " + numCheese);
System.out.println("Pepperoni: " + numPepperoni);
System.out.println("Sausage: " + numSausage);
System.out.println("Vegetarian: " + numVegetarian);
}
public void billOutput(double subTotal, double tax, double carryOut, double totalBill)
{
System.out.println("Subtotal : " +subTotal);
System.out.println("Tax : " + tax);
System.out.println("carryOut : " +carryOut);
System.out.println("Total Bill: " + totalBill);
}
導入java.util.Scanner;
公共類PizzaInput {掃描儀鍵盤=新的Scanner(System.in);
public int numCheese, numPepperoni, numSausage, numVegetarian;
public void readInput(PizzaOrder order)
{
System.out.print("How many Cheese Pizzas would you like?");
int numCheese = keyboard.nextInt();
order.setCheese(numCheese);
System.out.print("How many Pepperoni pizzas would you like?");
int numPepeperoni = keyboard.nextInt();
order.setPepperoni(numPepperoni);
System.out.print("How many Sausage pizzas would you like?");
int numSausage = keyboard.nextInt();
order.setSausage(numSausage);
System.out.print("How many Vegetarian pizzas would you like?");
int numVegetarian = keyboard.nextInt();
order.setVegetarian(numVegetarian);
}
}
公共類PizzaOrder {私有最終雙倍CHEESE_PRICE = 2.40;
private final double PEPPERONI_PRICE = 3.00;
private final double SAUSAGE_PRICE = 3.00;
private final double VEGETARIAN_PRICE = 3.50;
private final double SALES_TAX = .025;
private final double CARRY_OUT = .10;
public int numCheese, numPepperoni, numSausage, numVegetarian;
public int getCheese()
{
return numCheese;
}
public void setCheese(int numCheese)
{
this.numCheese=numCheese;
}
public int getPepperoni()
{
return numPepperoni;
}
public void setPepperoni(int numPepperoni)
{
this.numPepperoni=numPepperoni;
}
public int getSausage()
{
return numSausage;
}
public void setSausage(int numSausage)
{
this.numSausage= numSausage;
}
public int getVegetarian()
{
return numVegetarian;
}
public void setVegetarian(int numVegetarian)
{
this.numVegetarian = numVegetarian;
}
public double calculateSubTotal()
{
double cheeseTotal= numCheese * CHEESE_PRICE;
double pepperoniTotal = numPepperoni * PEPPERONI_PRICE;
double sausageTotal = numSausage * SAUSAGE_PRICE;
double vegetarianTotal = numVegetarian * VEGETARIAN_PRICE;
double subTotal = cheeseTotal + pepperoniTotal + sausageTotal + vegetarianTotal;
double tax = (subTotal) * SALES_TAX;
double totalBill = (tax + subTotal) * CARRY_OUT;
return totalBill;
}
}
當你說跟隨
output.summaryOutput (numCheese, numPepperoni, numSausage, numVegetarian)
它將嘗試在當前方法/類中搜索相同的變量名( numCheese
, numPepperoni
, numSausage
, numVegetarian
),這些變量名未定義,因此無法確定。
請定義這些內容,否則請正確引用
也沒有為summaryOutput1
和@pooja建議定義
System.out.println(output.billOutput(String billOutput));//where is the param billOutput?
應該像
System.out.println(output.billOutput(billOutput));
在調用方法而不是定義方法時,請從以下行中刪除“ String
”。 此外, billOutput
已經兩次。 避免名稱沖突。
System.out.println(output.billOutput(String billOutput));
仔細閱讀以下代碼集,並確定在應用程序內部必須執行的更改
public class PizzaOutput {
private int numCheese;
private int numPepperoni;
private int numSausage;
private int numVegetarian;
public PizzaOutput(){}
public PizzaOutput(int numSausage, int numCheese, int numPepperoni, int numVegetarian) {
this.numSausage = numSausage;
this.numCheese = numCheese;
this.numPepperoni = numPepperoni;
this.numVegetarian = numVegetarian;
}
public int getNumCheese() {
return numCheese;
}
public void setNumCheese(int numCheese) {
this.numCheese = numCheese;
}
public int getNumPepperoni() {
return numPepperoni;
}
public void setNumPepperoni(int numPepperoni) {
this.numPepperoni = numPepperoni;
}
public int getNumSausage() {
return numSausage;
}
public void setNumSausage(int numSausage) {
this.numSausage = numSausage;
}
public int getNumVegetarian() {
return numVegetarian;
}
public void setNumVegetarian(int numVegetarian) {
this.numVegetarian = numVegetarian;
}
public String summaryOutput(int numSausage, int numCheese, int numPepperoni, int numVegetarian){
setNumSausage(numSausage);
setNumCheese(numCheese);
setNumPepperoni(numPepperoni);
setNumVegetarian(numVegetarian);
return "Sausage : "+ getNumSausage()+ " Cheese : "+getNumCheese()+ " Pepeeroni : "+ getNumPepperoni()+ " Vegetarian : "+getNumVegetarian();
}
public String billOutPut(String bOutput){
// Enter here your code to get the bill
return "Bill Output"; // return the bill as a String
}
}
->注意實例變量的聲明
->您尚未在“ summaryOutput”和“ billOutPut”方法中聲明return語句。 因此,您必須將return語句聲明為單個語句
->根據您的代碼結構,調用這兩個方法足以獲取輸出,而無需在SOP中調用這兩個方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.