Java 参数不能作为变量解析?

Java 参数不能作为变量解析?,java,class,variables,methods,Java,Class,Variables,Methods,这是一个相当基本的程序。当我尝试打印summaryOutput方法和billOutput方法时,我收到错误消息,说参数不能作为变量解析 public class PizzaDriver{ public static void main(String[] args) { PizzaOrder order = new PizzaOrder(); PizzaOutput output = new PizzaOutput(); Pi

这是一个相当基本的程序。当我尝试打印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));
    }
}
公共类比萨饼输出 {

导入java.util.Scanner

公共类比萨饼输入 { 扫描仪键盘=新的ScannerSystem.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);



    }
}

公共类比萨饼订单 { 私人最终双奶酪价格=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、numpperperoni、numSausage、numVegetarian,这些变量未定义,因此无法找到

请定义这些,否则请正确引用

此外,summaryOutput1和@pooja建议的没有定义

System.out.println(output.billOutput(String billOutput));//where is the param billOutput?
应该是

System.out.println(output.billOutput(billOutput));
在调用方法而不定义它时,请从下一行中删除字符串。此外,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内调用这两个方法

您没有正确的SysOut语法您的numcheese、Numpeperoni声明和初始化了吗?请在POST中编辑它。我有4个类。用户输入这些变量的值。我是我是这个网站的新手,不知道如何编辑我的帖子。代码首先无法找到变量。所以定义它们。我理解@JimM33,但正如我在回答中所建议的,你能解释一下你的主要方法如何知道在任何地方都没有定义的变量吗?如果我们想使用它,我们需要定义它们,比如说对于numCheese,如何定义我知道它是什么吗?它是一个字符串/int/long吗?我是一个新的java学生。我知道它们没有在main方法中定义,但我不确定我应该怎么做。变量是在readInput方法中定义的。我如何将这些值传递到我的main方法中?我建议,我建议首先理解它,因为一旦你理解了它,y您将能够快速工作和编码所有这些更改都在pizzaOutput类?Yha中。这取决于其他类的场景和实现请注意应用程序的体系结构。您的类有重复的代码。请尝试删除这些内容。
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
    }
}