面向物件編程 —— Object Oriented Programming 簡寫 OOP,
如果你以前沒有接觸過面向物件的編程語言,那你可能需要先了解一些面向物件語言的一些基本特征,在頭腦里頭形成一個基本的面向物件的概念,這樣有助于更容易的學習 Python 的面向物件編程,
面向物件編程是在在面向程序編程的基礎上發展來的,它比面向程序編程具有更強的靈活性和擴展性,
面向物件編程是程式員發展的分水嶺,很多初學者會因無法理解面向物件而放棄學習編程,
一、面向程序和面向物件的基本概念
1、面向程序
- 把完成某一個需求的所有步驟從頭到尾逐步實作,
- 根據開發需求,將某些功能獨立的代碼封裝成一個又一個函式,
- 最后完成的代碼,就是順序地呼叫不同的函式,
特點
- 注重步驟與程序,不注重職責分工,
- 如果需求復雜,代碼會變得很復雜,
- 開發復雜專案,沒有固定的套路,開發難度很大!

2、面向物件
相比較函式,面向物件是更大的封裝,根據職責在一個物件中封裝多個方法,
- 在完成某一個需求前,首先確定職責——要做的事情(方法),
- 根據職責確定不同的物件,在物件內部封裝不同的方法(多個),
- 最后完成的代碼,就是順序地讓不同的物件呼叫不同的方法,
特點
- 注重物件和職責,不同的物件承擔不同的職責,
- 更加適合應對復雜的需求變化,是專門應對復雜專案開發,提供的固定套路,
- 需要在面向程序的基礎上,再學習一些面向物件的語法,
二、面向物件的思維方式
面向物件是一種思維方式,也是一門程式設計技術,
要解決一個問題前,首先考慮由誰來做,怎么做事情是誰的職責,最后把事情做好就行!
物件就是找誰解決問題,要解決復雜的問題,就可以找多個不同的物件,各司其職,共同實作,最終完成需求,
三、通過實體講解面向物件


我們來看植物大戰僵尸的例子,
向日葵可以生產陽光,在植物大戰僵尸中,生產陽光這件事情就是向日葵的職責,同時,向日葵沒事干的時候,也會搖搖晃晃,另外向日葵還有一個生命值,僵尸在啃向日葵的時候不是一口吃掉的,而是要啃好幾口,
當我們把生產陽光和搖晃這兩件事情封裝到向日葵這個物件里面之后,生產陽光和搖晃就是向日葵來負責了,而我們的主程式只需要把向日葵往地上一擺就完成了,
其他的物件如僵尸、射手也是這個道理,使用面向物件開發,主程式的功能就大大簡化了,
在面向物件開發的時候,由于明確了職責,所以在各個物件中的方法很少會出現彼此呼叫的情況,
四、類和物件的概念
類和物件是面向物件編程的兩個核心概念,
1、類(class)
類是對一群具有相同特征或者行為的事物的一個統稱,是抽象的,不能直接使用,
其中特征被稱為屬性,行為被稱為方法,
舉例說明下:
可以把類看作是制造飛機時的圖紙,當工廠拿到這張圖紙之后,就可以使用這張圖紙制造出飛機了,我們可以在這張圖紙上指定飛機具體什么樣的特征,以及飛機具有什么樣的行為,
在面向物件開發中,我們通常把特征叫做屬性,把行為叫做方法,
類可以理解為是一個模板,通過它可以創建出無數個具體實體,它的職責很單一,就是負責創建物件的,
2、物件
物件是由類創建出來的一個具體存在,可以直接使用,
由哪一個類創建出來的物件,就擁有在哪一個類中定義的屬性和方法,
可以把物件理解為根據圖紙制造出來的飛機,
在程式開發中,應該先有類,再有物件,
總結:
類是模板,物件是根據類這個模板創建出來的,應該先有類,再有物件,
類只有一個,而物件可以有很多個,不同的物件之間屬性可能會各不相同,
類中定義了什么屬性和方法,物件中就有什么屬性和方法,不可能多,也不可能少,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/30855.html
標籤:Python
