【发布时间】:2013-12-11 17:02:24
【问题描述】:
我正在尝试创建披萨菜单。我有 3 节课,
- PizzaBase(带有获取/设置底部厚度的方法 [薄的或深的])
- PizzaTopping,再次使用 get/set 方法 对于浇头的类型
- Pizza,存储我的成本变量和 使用继承在 3 个类中使用。
作为一个成本变量,用于基料、浇头和整个比萨饼本身。
现在我的问题是,我将如何创建一个 Pizza 对象,然后创建 1 个基础对象和几个浇头对象,每个对象都有价格?
我可以计算出如何计算总体价格,我只是有点卡在对象中创建对象。
public class PizzaTopping extends Pizza{
private String topping;
public String getTopping(){
return this.topping;
}
public void setTopping( String topping ){
this.topping = topping;
}
}
public class PizzaBase extends Pizza{
private String base;
public void setBase( String base ){
this.base = base;
}
public String getBase(){
return this.base;
}
}
public class Pizza {
private double cost;
public void setCost( double cost ){
this.cost = Math.abs(cost);
}
public double getCost(){
return this.cost;
}
public void makingPizza(){
PizzaBase b = new PizzaBase();
}
}
【问题讨论】:
-
为什么
PizzaTopping应该扩展Pizza?Pizza是PizzaToppings 的组成;PizzaTopping本身不是Pizza。我会重新考虑对象模型。 -
是的,自从提出这个问题以来,我已经摆脱了继承方面。每个类现在都有自己的成本属性。但是我仍在努力在对象中创建对象
-
你已经在一个对象中有一个对象,
String topping。没有比这更特别的了。 -
我会为您的“定价”创建一个界面。这样,您可以使用多态性并给您的老师留下深刻印象。其次,我没有看到任何构造函数,只有 getter/setter。我将在 Pizza 上有一个构造函数,它采用 PizzaTopings 和 PizzaBase 的数组/列表。然后,此构造函数将在其自身上设置所有适当的项目(封装,老师也喜欢它)。 PizzaToppings 和 PizzaBase 类可能也需要某种构造函数。