打印 Getter 方法
Printing Getter methods
我在尝试从两个不同的 classes 打印出 switch 语句中的 Getter 方法时遇到问题。模板(甜甜圈)class 和巧克力 class 谁能帮帮我?
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;
}
}
这是 class
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()
。幸运的是,您已经有了一个 Donut 对象,所以您可以直接执行 choclate.getFlavor()
。它必须是这样的,因为你想知道那个特定甜甜圈的味道,每个甜甜圈可能都有不同的味道。如果每个甜甜圈的值都相同(例如价格),则可以将其设为静态方法。
还有一件事:通常方法以小写字符开头,如果方法只是 returns 一个值,它通常也以 'get' 开头,后跟 return。您可能希望将 Donut()
更改为 getName()
。布尔值有时会出现异常,因此 Filled()
可能会变成 isFilled()
.
我在尝试从两个不同的 classes 打印出 switch 语句中的 Getter 方法时遇到问题。模板(甜甜圈)class 和巧克力 class 谁能帮帮我?
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;
}
}
这是 class
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()
。幸运的是,您已经有了一个 Donut 对象,所以您可以直接执行 choclate.getFlavor()
。它必须是这样的,因为你想知道那个特定甜甜圈的味道,每个甜甜圈可能都有不同的味道。如果每个甜甜圈的值都相同(例如价格),则可以将其设为静态方法。
还有一件事:通常方法以小写字符开头,如果方法只是 returns 一个值,它通常也以 'get' 开头,后跟 return。您可能希望将 Donut()
更改为 getName()
。布尔值有时会出现异常,因此 Filled()
可能会变成 isFilled()
.