突然对“面向对象”和“面向过程”的区别有了一些领悟

起因:一个Java实训作业,要求至少用三个类实现。

 

 

 刚开始,顺理成章地敲下了主类和一个People类,People类如图:

 

 

 本来觉得“排序”能再搞一个类,但发现似乎不现实,于是开始反思。

这明显延续了C的编程思想,将“排序”单独看作一个独立模块,看似做到了“封装”,但这“面向”的不是“对象”,而是“排序”这一过程。

面向的“对象”应该是一个有“主语”的东西。

那继续想下去,若想把“排序”单独拎出来搞出一个类,那这个类中必然要有“排序”的“主语”。

这个“主语”是什么?

是“成绩的总和”,即sum。

因此我重新把类改成了这样:

 

 

 是不是河狸多了。

但现在有一个新的问题:好像没法在Sum类中写一个用于排序的方法(搞不懂参数怎么传)。。

......

算了算了,排序写在主类里罢,反正已经凑够三个类了(算上主类)。

(摆

posted @ 2022-04-10 11:22  mucstdio  阅读(44)  评论(0)    收藏  举报