1. 程式人生 > 其它 >突然對“面向物件”和“面向過程”的區別有了一些領悟

突然對“面向物件”和“面向過程”的區別有了一些領悟

起因:一個Java實訓作業,要求至少用三個類實現。

 

 

 剛開始,順理成章地敲下了主類和一個People類,People類如圖:

 

 

 本來覺得“排序”能再搞一個類,但發現似乎不現實,於是開始反思。

這明顯延續了C的程式設計思想,將“排序”單獨看作一個獨立模組,看似做到了“封裝”,但這“面向”的不是“物件”,而是“排序”這一過程。

面向的“物件”應該是一個有“主語”的東西。

那繼續想下去,若想把“排序”單獨拎出來搞出一個類,那這個類中必然要有“排序”的“主語”。

這個“主語”是什麼?

是“成績的總和”,即sum。

因此我重新把類改成了這樣:

 

 

 是不是河狸多了。

但現在有一個新的問題:好像沒法在Sum類中寫一個用於排序的方法(搞不懂引數怎麼傳)。。

......

算了算了,排序寫在主類裡罷,反正已經湊夠三個類了(算上主類)。

(擺