我对面向对象编程有点陌生,我正在学习这些概念。现在,我只需要在逻辑上组织类的帮助。有关方法、属性和构造函数的部分我可以理解。我被分配了以下问题。
假日旅行车辆出售新的娱乐车辆和旅行拖车。当新车辆到达假日旅游车辆时,就创造了新的车辆记录。新车辆记录中包括车辆序列号、名称、型号、年份、制造商和基本成本。当顾客到达假日旅游车辆时,他或她会与销售人员协商购买车辆。当达成购买协议时,销售人员将填写销售发票。发票概述了购买情况,包括完整的客户信息、交易车辆信息(如果有的话)、交易补贴以及购买车辆的信息。如果客户要求经销商安装的选项,它们也被列在发票上。发票还概述了谈判价格,以及任何适用的税收和许可费。交易结束时,销售发票上有客户签名。
到目前为止,我想做的是制作一个带有客户和车辆子类的发票超类,因为车辆信息和客户信息都在发票上。然而,由于车辆在到达经销商时获得记录,我也考虑让汽车与子类旅行拖车和房车同级,因为其中一个涉及发动机,而另一个则不涉及。但是,如果我在发票中做车辆记录和车辆信息,我不能使车辆既属于自己的类别,又是发票的子类。(如果我所说的一切都没有意义,对不起,我真的很困惑。)那我该怎么安排这些课呢?我真的迷路了。
发布于 2012-09-04 20:27:49
让车辆和客户成为发票的子类并不是很有意义。我认为您想要的是创建一个vehicle类和一个customer类,然后在您的发票类中,您可以保存vehicle对象和它指定的customer对象的一个实例。
public class Invoice {
private Vehicle MyVehicle;
private Customer MyCustomer;
//...etc
}
public class Customer {
private String FirstName;
//...etc
}
public class Vehicle{
private String Model;
//...etc
}对于旅行拖车和房车类,它更有意义的子类车辆,因为他们在本质上是一个车辆,因此将共享许多共同的变量与车辆。您需要问自己的问题是,某物是is ( RV is a vehicle),还是points (发票中有车辆的引用)。我希望这是明确的,这肯定是我记得在我第一次学习的时候所经历的挣扎。
发布于 2012-11-16 13:13:21
假日旅行车辆出售新的娱乐车辆和旅行拖车。当新车辆到达假日旅游车辆时,就创造了新的车辆记录。新车辆记录中包括车辆序列号、名称、型号、年份、制造商和基本成本。当顾客到达假日旅游车辆时,他或她会与销售人员协商购买车辆。如已同意购买,销售人员将填写销售发票。发票总结采购,包括完整的客户信息,交易车辆(如果有的话)的信息,交易补贴,以及购买车辆的信息。如果客户要求经销商安装的选项,它们也将被列在发票上。发票还总结了最后协商的价格,以及任何适用的税收和许可费。交易结束时,销售发票上有客户签名。
发布于 2012-09-04 21:02:14
我可以给您一个提示,当您注意到一些元素共享特性时,总是使用继承,虽然只有一个特性,但使用继承。现在您只能看到一个共同的特性,但也许有一天您会注意到它们有多个共同之处。
我能说的另一件重要的事情是,你不应该构建一个不相关的元素的层次结构,例如,你不应该构建一个超类车辆和两个子类--汽车和马,也许你认为它们有一些共同的特性,但它们并不属于相同的元素类别,在这种情况下,一个研究更深入的层次更好。
与继承有关的另一个重要的概念是多态和动态绑定,非常有用。
希望这对你有用,
https://stackoverflow.com/questions/12270793
复制相似问题