【发布时间】:2015-06-16 20:42:36
【问题描述】:
在 java 中处理 Pizza/Pizza 订单程序时,我不断收到 13 个错误:预期的类、接口或枚举。我知道问题应该出在大括号上,但我一直没能找到它。我希望另一组(或多组)不同的眼睛能够发现错误。
public Pizza (String size, int cheese, int pepperoni, int ham) {
this.size = size;
if (cheese < 0) {
this.cheese = 0;
}
else {
this.cheese = cheese;
}
if (pepperoni < 0) {
this.pepperoni = 0;
}
else {
this.pepperoni = pepperoni;
}
if (ham < 0) {
this.ham = 0;
}
else {
this.ham = ham;
}
}
public double calcCost() {
if (size.equals("small")) {
return 10 + 2 * (ham + cheese + pepperoni);
}
else if (size.equals("medium")) {
return 12 + 2 * (ham + cheese + pepperoni);
}
else if (size.equals("large")) {
return 14 + 2 * (ham + cheese + pepperoni);
}
else {
System.out.println("Invalid size");
}
}
public class PizzaOrder {
private Pizza pizza1;
private Pizza pizza2;
private Pizza pizza3;
public PizzaOrder() {
numPizzas = 1;
pizza1 = new Pizza();
pizza2 = new Pizza();
pizza3 = null;
}
public PizzaOrder (int numPizzas, Pizza pizza1, Pizza pizza2, Pizza pizza3) {
this.numPizzas = numPizzas;
this.pizza1 = pizza1;
this.pizza2 = pizza2;
this.pizza3 = pizza3;
}
public void setNumPizzas (int numPizzas) {
if (numPizzas > 3) {
this.numPizzas = 3;
}
else if (numPizzas < 1) {
this.numPizzas = 0;
}
else {
this.numPizzas = NumPizzas;
}
}
public void setPizza1 (Pizza pizza1) {
this.pizza1 = pizza1;
}
public void setPizza2 (Pizza pizza2) {
this.pizza2 = pizza2;
}
public void setPizza3 (Pizza pizza3) {
this.pizza3 = pizza3;
}
public double calcTotal() {
double total = pizza1.calcCost();
if (numPizzas >= 2) {
total += pizza2.calcCost();
}
if (numPizzas == 3) {
total += pizza3.calcCost();
}
return total;
}
}
public class MainMethodClassName {
public static void main (String args[]) {
Pizza pizza1 = new Pizza("large", 1, 0, 1);
Pizza pizza2 = new Pizza("medium", 2, 2, 0);
PizzaOrder order = new PizzaOrder();
order.setNumPizzas(2);
order.setPizza1(pizza1);
order.setPizza2(pizza2);
double total = order.calcTotal;
System.out.println("First Pizza: ");
System.out.println(pizza1.getDescription());
System.out.println("Second Pizza: ");
System.out.println(pizza2.getDescription());
System.out.println("Total price: $" + total);
}
}
错误在第 1、4、6、9、12、15、18、21、24、27、30、33 和 36 行
感谢您的帮助;我真的很感激!
【问题讨论】:
-
这是你的整个源文件吗?如果是这样,您在类之外定义了方法。也许您的类定义应该移到文件的顶部,或者您需要另一个类定义。
-
this.numPizzas = NumPizzas;右侧的大小写似乎错误。 -
您的前两个方法不在一个类中。需要在开头加
public class Pizza {,下一节课开始前加}。 -
当然,你真的应该在一个单独的文件中定义每个类。
标签: java class interface enums