我在为我的 Java 类创建 mutator 方法时遇到了麻烦,我正在寻求一些帮助。这些是该方法的说明;
* Mutator method that calculates the cost of a pizza.
* Small pizza = $8, toppings = $1/each
* Medium pizza = $10, toppings = $2/each
* Large pizza = $12, toppings = $3/each
* 4 or more toppings = $2 discount regardless of pizza size
我遇到麻烦的地方是为每个披萨添加 2 美元的折扣。到目前为止,我已经尝试过了,但我收到一条错误消息,指出二元运算符的操作数类型错误。
public void setCost()
{
smallPizza = smallPizza.valueOf(8 + 1 * numberToppings);
mediumPizza = mediumPizza.valueOf(10 + 2 * numberToppings);
largePizza = largePizza.valueOf(12 + 3 * numberToppings);
if(numberToppings >= 4) {
smallPizza = smallPizza - 2;
mediumPizza = mediumPizza - 2;
largePizza = largePizza - 2;
}
我也试过这个代码,它符合但返回“null”而不是比萨饼的成本加上折扣:
public void setCost()
{
smallPizza = smallPizza.valueOf(8 + 1 * numberToppings);
mediumPizza = mediumPizza.valueOf(10 + 2 * numberToppings);
largePizza = largePizza.valueOf(12 + 3 * numberToppings);
if(numberToppings >= 4) {
smallPizza = smallPizza.valueOf(6 + 1 * numberToppings);
mediumPizza = mediumPizza.valueOf(8 + 2 * numberToppings);
largePizza = largePizza.valueOf(10 + 3 * numberToppings);
}
有什么建议么?
这是完整的代码:
public class Pizza
{
private String customerName;
private String pizzaSize;
private int numberToppings;
private int pizzaCost;
private String smallPizza;
private String mediumPizza;
private String largePizza;
/**
* Constructor for objects of class Pizza
*/
public Pizza(String CustomerName, String PizzaSize, int NumberToppings)
{
customerName = CustomerName;
numberToppings = NumberToppings;
pizzaSize = PizzaSize;
}
/**
* Constructor for selecting pizza size.
*/
public void pizzaSize(String small, String medium, String large)
{
smallPizza = small;
mediumPizza = medium;
largePizza = large;
}
/**
* Accessor method that returns the name of an order
*/
public String getName()
{
return customerName;
}
/**
* Mutator method that calculates the cost of a pizza.
* Small pizza = $8, toppings = $1/each
* Medium pizza = $10, toppings = $2/each
* Large pizza = $12, toppings = $3/each
* 4 or more toppings = $2 discount regardless of pizza size
*/
public void setCost()
{
smallPizza = smallPizza.valueOf(8 + 1 * numberToppings);
mediumPizza = mediumPizza.valueOf(10 + 2 * numberToppings);
largePizza = largePizza.valueOf(12 + 3 * numberToppings);
if(numberToppings >= 4) {
smallPizza = smallPizza.valueOf(6 + 1 * numberToppings);
mediumPizza = mediumPizza.valueOf(8 + 2 * numberToppings);
largePizza = largePizza.valueOf(10 + 3 * numberToppings);
}
}
/**
* Accessor method that returns the cost of a pizza.
*/
public void getCost()
{
System.out.println(smallPizza);
System.out.println(mediumPizza);
System.out.println(largePizza);
}
}