突然對“面向物件”和“面向過程”的區別有了一些領悟
阿新 • • 發佈:2022-04-10
起因:一個Java實訓作業,要求至少用三個類實現。
剛開始,順理成章地敲下了主類和一個People類,People類如圖:
本來覺得“排序”能再搞一個類,但發現似乎不現實,於是開始反思。
這明顯延續了C的程式設計思想,將“排序”單獨看作一個獨立模組,看似做到了“封裝”,但這“面向”的不是“物件”,而是“排序”這一過程。
面向的“物件”應該是一個有“主語”的東西。
那繼續想下去,若想把“排序”單獨拎出來搞出一個類,那這個類中必然要有“排序”的“主語”。
這個“主語”是什麼?
是“成績的總和”,即sum。
因此我重新把類改成了這樣:
是不是河狸多了。
但現在有一個新的問題:好像沒法在Sum類中寫一個用於排序的方法(搞不懂引數怎麼傳)。。
......
算了算了,排序寫在主類裡罷,反正已經湊夠三個類了(算上主類)。
(擺