Java クラスのミューテーター メソッドの作成に問題があり、少し助けを求めています。これらはメソッドの説明です。
* 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);
}
}