不能写这个方法?

时间:2014-12-18 16:57:08

标签: java methods properties

我需要创建一个披萨订购系统。我已经创建了披萨配料的数组列表,并且每个披萨配料都必须具有与之相关的成本属性,然后用户可以选择他们想要的配料,并且每个配料的成本将被累加,并且整个披萨的总成本将是显示。但我不知道如何将成本与每个顶部联系起来。我被告知我可以通过get / set方法访问成本并将其存储在私有成员变量中。但我不知道怎么做?

我也被告知Pizza类应该有一个特殊的方法来添加浇头。在创建Pizza对象之后,将重复调用该方法以添加要添加到披萨中的任何浇头。 Topping类可以具有顶部的名称和成本。

但是我不知道怎么写这个方法......我的arrayList如下:

private List<String> Toppings = new ArrayList<String>();

public void arrayList(){

        Toppings.add("Pepperoni"); 
        Toppings.add("Chicken");
        Toppings.add("Ham");
        Toppings.add("Onion");
    }

任何人都可以提供帮助,因为这是我无法克服的主要绊脚石吗?

2 个答案:

答案 0 :(得分:0)

1)定义包含所有浇头的地图:

private Map<String, Double> toppingsMap = new HashMap<String, Double>();

2)如你的例子所示,在披萨上添加一些浇头

3)获取披萨配料描述并使用它来获得添加配料的总奖金:

for (String topping : toppingsInPizza) {
     total += (Double) toppingsMap.get(topping);
}

* 高度不鼓励在variable中以大写字母启动Java个名称。

答案 1 :(得分:0)

您可能需要考虑重新设计此代码并使用Decorator模式。您可以通过添加成分而无需修改现有代码来获得可扩展性。这是一个很棒的链接,显示了如何通过咖啡制作方案完成。 Decorator pattern此外,这是解决此问题的理想方法。