Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在课堂上决定方法_Java_Oop - Fatal编程技术网

Java 如何在课堂上决定方法

Java 如何在课堂上决定方法,java,oop,Java,Oop,我不熟悉面向对象编程。我正在为一家杂货店开发一个软件。杂货店有顾客,顾客有地址和订阅。所有这些都是应用程序中的不同类。 我有点困惑,我应该在哪个类中创建哪个方法,以及我应该如何决定这一点。 喜欢 viewSubscription应该是Subscription类或Customer类的一部分。 modifyCustomer应该是Customer类或Store类的一部分 面向对象编程的思想之一是将有意义的事情组合在一起。在您的示例中,由于它们处理的是与客户相关的信息,我可能会将这两个方法都放在Cust

我不熟悉面向对象编程。我正在为一家杂货店开发一个软件。杂货店有顾客,顾客有地址和订阅。所有这些都是应用程序中的不同类。 我有点困惑,我应该在哪个类中创建哪个方法,以及我应该如何决定这一点。 喜欢 viewSubscription应该是Subscription类或Customer类的一部分。
modifyCustomer应该是Customer类或Store类的一部分

面向对象编程的思想之一是将有意义的事情组合在一起。在您的示例中,由于它们处理的是与客户相关的信息,我可能会将这两个方法都放在Customer类中。

方法是行为,变量是状态

你可以订阅什么?从何而来的征召

订阅无法查看自身,谁将查看订阅?顾客


suscription实际上应该是一个类,但POJO是一个状态集合。客户可以看到这些状态。

面向对象编程可以轻松解决复杂问题。您可能想坐下来,对类之间的关系以及类将包含的数据进行模式分析。哪种方法应该走到哪里将变得显而易见

为什么要查看订阅,而不是订阅的成员

总是问自己一个简单的问题:查看什么订阅?关于你想做什么动作

我打赌你想查看客户的订阅!使viewSubscription成为客户的一种方法!customer1.viewSubscription

查看UML和OCL。它们将帮助你对你的想法进行建模。

只是一个概述:一个对象代表一个真实的实体,比如说一辆汽车,一辆汽车有一些属性,比如它有轮子、方向盘、变速箱等等,就像它有一些行为,比如向前移动、向左转向、向右转向和停止一样。
当采用面向对象编程方法时,上面提到的所有与汽车相关的事情都会像这样,我们制作一个汽车类,属性车轮、转向、变速箱等被定义为该类中的变量,行为向前移动,向左转向,steers right被定义为该类中的函数。没有与OOP相关的硬性规则,您只需让它在逻辑上尽可能真实,例如,在您的情况下,Subscription类包含与订阅相关的所有信息,而客户拥有订阅,因此viewSubscriptionmethod应该包含在内Customer类作为私有字段,因为它应该获取并显示与特定客户相关的订阅信息。modifyCustomer,因为它涉及到修改Customer类的数据字段,因此这也将出现在Customer类中,因为所有字段值的修改可能都应该在包含字段的类中完成。

如果这些方法进行任何类型的用户交互,例如显示GUI视图,他们应该是不同班级的一员。您的模型类应该只关注对您需要的有关客户、地址和订阅的各种数据进行分组。可能包括一些业务逻辑,如验证,但也可以进入控制器类。但当然不是演示代码。您使用哪种用户界面技术查看订阅?如果它是桌面GUI,或者基于web GUI,那么您可以从查看。我说开始是因为这是一个非常大的话题。在这种情况下,您可能会创建SubscriptionView类或页面,这取决于您决定让用户查看订阅的技术