如何快速入門面向對象編程?
謝邀!入門OOP大致有這樣兩個方面,一是理解OOP類的代碼編寫,一是理解對象的概念。
關于類和編碼封裝,繼承和多態都是類的基本概念。(注意不是對象)掌握這些概念對理解和運用類非常重要。可以通過一些編程練習獲得對這些概念的直觀認識。編程語言推薦使用Java或者C#。這兩種語言比較嚴謹地運用了類的概念,比較適合用來學習OOP。C++雖然也是OOP的語言,但語法過于復雜,不適合入門級學習使用。在對類和編碼有了一定程度的理解之后,就要攻克OOP的難點,也就是對象的概念了。
關于對象教科書上喜歡用小貓小狗和動物之類的關系形容對象。這么形容倒也沒有錯誤。但是,它造成了一種錯覺,似乎是對象和類有一種一一對應的關系。實際上在OOP中對象可以是一個過程,也可以是一種結構,還可以是一組功能。這些對象往往需要用一組類和它們之間巧妙的組合來實現。而類也只不過是對象的代碼實現而已。
舉個例子一個增刪改查的程序,它的流程是先查,然后增刪改輸入,然后增刪改確認,最后提示增刪改的結果。我們希望為這樣的流程建個模版,保證所有的處理都遵循這一流程。首先,這個流程中,最基本的是增刪改查其中的一個操作,為它做一個抽象類叫Action。Action除了做一次操作以外還要去調用下一個操作。所以,要有一個方法DoNext。我們還需要用另一個類,定義輸入確認結果這一子流程。這個類里面要聚合三次操作。先查后操作要求我們還要用一個類來聚合一次檢索和前面的子流程。在這里我只想說明復雜對象的概念,具體怎么用類來做定義就不啰嗦了。真正的實裝中,上面的例子大概需要十幾個類才能組合出來。
關于設計模式設計模式提供了很多對象實現的思路。可以通過學習設計模式理解對象的概念,并掌握一些用類實現的技巧。前面的例子就會用到抽象工廠模式。因此,設計模式也是OOP入門的必修課。