少走彎路去學習物件導向程式設計

2021-06-13 10:47:30 字數 1373 閱讀 2584

在學習物件導向的過程中,我自己也走了很多的彎路。一般來講,接觸物件導向是做為程式語言的一部分。那時候認為在程式中寫乙個 class 關鍵字就是物件導向,寫 class a: class b 就是物件導向的繼承。實際從程式語言的角度來理解是無法掌握物件導向的精髓的,在這裡我想以我的經驗來告訴大家我的一些方法。

物件導向是一種思想理論,要遠遠高於程式語言。不深入理解物件導向理論就無法做到編寫比較高階的軟體,而且往往這些軟體不能有效應對變化,不能復用,不能擴充套件,不能維護等。使用抽象方法還能應對軟體的複雜度,因為抽象是對事物的簡化方法。

首先在學習物件導向前明白你的目的然後講方法(這個很重要,如果目的不明,任何事情都做不好,而且肯定方法不對)。那麼首先想想物件導向的目的是什麼?

先搞清抽象是什麼

如果搞不清抽象是什麼,其他的特性等於白說。

抽象是具體到一般的過程。雖然抽象是乙個簡單的概念或者說過程,但是要領悟其中的涵義不能單從程式語言上來,應該是一種邏輯思維的角度來思考抽象是什麼。

你可以對自然世界的進行抽象演習,同時也是抽象最主要的學習方式。要知道物件導向理論是人們從對現實世界的乙個客觀反映,是在參照現實世界,比如你是對你的某某人抽象為人,他的行為怎麼抽象。

接下來思考實現抽象有什麼方法

比如分類法就是抽象的基本方法。然後聯絡對行為抽象,因為分類法是主要是針對靜態的東西進行抽象(淡然不排除動態),而行為是物件與物件互動方式,所以對行為抽象也具有重要的意義。

然後要思考軟體的本質(資料和邏輯)以及軟體的變化特性,以及如何重用(你看設計模式的時候,要注意這書的副標題)。

抽象可以應對變化,如何應對變化你自己想清楚。抽象是什麼,以及如何應對變化,如果搞不清楚的話,物件導向只會停留在語言層面。語言層面的東西是淺顯的,真正要掌握的是思想,就像我們人類一樣。

思考物件導向的繼承、封裝以及多型

這三個詞如果從程式語言的角度來講,沒有多大的意義。要軟體根本上來講,如何重用啊,外部如何看待內部以及在執行時如何處理抽象與實現的關係。

軟體實現為了達到應對變化,提高復用。

繼承的本質是提高重用,但是繼承不是重用的唯一方法,還有組合這個非常重要的方法。

繼承從語言層面來講可以簡單理解為 class a : class b,組合才是提高重用的關鍵,現在很多的商業上不都是要整合啊,實際就是組合的一種顯示表述,自己不實際去做,但是掌握著關鍵的東西(核心競爭力)。那具體的上來講,我們的軟體外包不就是組合的一種現實表述嗎,發達國家設計軟體,而把軟體的具體編碼交給別的國家。

封裝是一種機制,就是物件的外部看到是的物件是乙個統一的整體,從語言層面上講就是那些關鍵字啊。真正要掌握的是如何封裝,如何確定哪些東西要封裝,多型可以簡單理解為乙個抽象有很多具體實現。 那麼在執行期間就需要動態決定採用哪種具體實現。

最後要真正把握軟體的變化,複雜度以及如何重用才是根本,物件導向對軟體來講只是一種方法手段。

程式設計中少走彎路的十條忠告

剛剛走上社會的年輕人,充滿了蓄勢待發的豪情 青春的朝氣 前衛的思想,夢想著豐富的待遇和轟轟烈烈的事業。可是,社會畢竟是一所包羅永珍 喧囂複雜的大學校,這裡沒有寒暑假,拒絕虛假和膚淺,更拒絕空想和庸碌,難以預告何時開課何時放學。如何在涉世之初少走彎路,有乙個好的開端,開始一番成功的事業?以下是一些先行...

點點教程告訴你 如何自學程式設計?如何少走彎路?

如果耐心讀完本文,對您學習程式設計大有幫助 對於所有程式設計學習者,尤其是零基礎的同學們,在學習的初期,一定要給自己做乙個思想上的轉變。在我的程式設計學習理論中,這個思想的轉變至關重要,什麼時候你把這個思維轉換過來了,你就是真正上道的那一天。這個思維轉換就是 不要把自己當學生,而是要把自己當開發者。...

零基礎學習微控制器切記這四點要求,少走彎路

微控制器個人覺得先掌握其中一種,其它的都可以觸類旁通,快速上手了。如果你這些條件都沒有,我建議你學習51 微控制器。為什麼要學習51微控制器 雖然現在微控制器種類和型號非常多,每個型號都有一定的市場份額,但是哪個型號也沒有早期 51微控制器那般風光和火爆,雖然現在地位不是那麼高了,但是因為 51 微...