Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 印刷吸气剂法_Java_Switch Statement - Fatal编程技术网

Java 印刷吸气剂法

Java 印刷吸气剂法,java,switch-statement,Java,Switch Statement,我在尝试从两个不同的类打印switch语句中的Getter方法时遇到问题。模板(甜甜圈)类和巧克力类有人能帮我吗 public class Donut { private boolean sprinkles; private String flavor; private boolean filled; private String frostingFlavor; private boolean hole; private String name; public Don

我在尝试从两个不同的类打印switch语句中的Getter方法时遇到问题。模板(甜甜圈)类和巧克力类有人能帮我吗

public class Donut {
  private boolean sprinkles;
  private String flavor;
  private boolean filled;
  private String frostingFlavor;
  private boolean hole;
  private String name;
  public Donut(String name) {
      this.name=name;
  }
  public void setSprinkles(boolean sprinkles) {
      this.sprinkles=sprinkles;
  }
  public void setFlavor(String flavor) {
      this.flavor=flavor;
  }
  public void setHole(boolean hole) {
      this.hole=hole;
  }
  public void setFilled(boolean filled) {
      this.filled=filled;
  }
  public void frostingFlavor(String frostingFlavor) {
      this.frostingFlavor=frostingFlavor;
  }
  public String Donut() {
      return name;
  }
  public boolean Sprinkles() {
      return sprinkles;
  }
  public String getFlavor() {
      return flavor;
  }
  public boolean Hole() {
      return hole;
  }
  public boolean Filled() {
      return filled;
  }
  public String frostingFlavor() {
      return frostingFlavor;
  }
}
这是课程

import java.io.*;
import java.util.*;

public class Chocolate {
  public static void main(String args[]){
      Donut chocolate=new Donut("chocolate");//Sets donut name to chocolate
      chocolate.setFlavor("chocolate");//sets donut flavor to chocolate
      chocolate.setHole(true);//donut object has a hole
      chocolate.setFilled(false);//donut object isn't filled
      chocolate.frostingFlavor("vanilla");//donut frosting flavor is vanilla
      chocolate.setSprinkles(true);//donut object has sprinkles
      Scanner kbReader=new Scanner(System.in);//scanner/imput header
      System.out.println("What would you like to know?");//start of switch statement
      System.out.println("1. Donut Flavor");
      System.out.println("2. Donut Frosting Flavor");
      System.out.println("3. Donut Sprinkles");
      System.out.println("4. Filled");
      System.out.println("5. Sprinkles");
      System.out.println("6. Donut Hole\n");
      int choice=kbReader.nextInt();
      switch(choice) {
          case 1://Donut Flavor
          System.out.println(Donut.getFlavor());
      }
  }
}

如果有人能帮我,那就太棒了,谢谢。

因为
getFlavor()
方法不是静态方法,你不能这样做
Donut.getFlavor()
但您必须执行
someDonutObject.getFlavor()
。幸运的是,您已经有了一个甜甜圈对象,所以只需执行
choclate.getFlavor()
。它必须是这样的,因为你想知道特定甜甜圈的味道,每个甜甜圈可能有不同的味道。如果每个甜甜圈都有一个相同的值(例如价格),那么可以将其设置为静态方法。
还有一件事:通常方法以小写字符开头,如果方法只返回一个值,它通常也以“get”开头,后跟返回的内容。您可能需要将
Donut()
更改为
getName()
。布尔值有时会出现异常,因此
Filled()
可能会变成
isFilled()

更改
System.out.println(Donut.getFlavor())
to
System.out.println(chocolate.getFlavor())
您还没有实现getter方法
getFlavor
我遇到的另一个问题是,如果我想使用whiel(true){}语句来循环switch语句,我怎么能有一行代码让用户退出循环?通常您想使用
break。如果你想打破一个嵌套的循环,你可能想看看break with Label。(虽然很少使用)通常不建议使用while(true)循环;可能有一种方法可以创建具有适当结束条件的循环。