初識物件導向 OOP 的基本概念

2022-09-03 15:57:09 字數 1966 閱讀 9865

物件導向程式設計 —— object oriented programming 簡寫 oop。

如果你以前沒有接觸過物件導向的程式語言,那你可能需要先了解一些物件導向語言的一些基本特徵,在頭腦裡頭形成乙個基本的物件導向的概念,這樣有助於更容易的學習 python 的物件導向程式設計。

物件導向程式設計是在在面向過程程式設計的基礎上發展來的,它比面向過程程式設計具有更強的靈活性和擴充套件性。

物件導向程式設計是程式設計師發展的分水嶺,很多初學者會因無法理解物件導向而放棄學習程式設計。

1、面向過程

把完成某乙個需求的所有步驟從頭到尾逐步實現。

根據開發需求,將某些功能獨立的**封裝成乙個又乙個函式。

最後完成的**,就是順序地呼叫不同的函式。

特點注重步驟與過程,不注重職責分工。

如果需求複雜,**會變得很複雜。

開發複雜專案,沒有固定的套路,開發難度很大!

2、物件導向

相比較函式,物件導向是更大的封裝,根據職責在乙個物件中封裝多個方法。

在完成某乙個需求前,首先確定職責——要做的事情(方法)。

根據職責確定不同的物件,在物件內部封裝不同的方法(多個)。

最後完成的**,就是順序地讓不同的物件呼叫不同的方法。

特點注重物件和職責,不同的物件承擔不同的職責。

更加適合應對複雜的需求變化,是專門應對複雜專案開發,提供的固定套路。

需要在面向過程的基礎上,再學習一些物件導向的語法。

物件導向是一種思維方式,也是一門程式設計技術。

要解決乙個問題前,首先考慮由誰來做,怎麼做事情是誰的職責,最後把事情做好就行!

物件就是找誰解決問題,要解決複雜的問題,就可以找多個不同的物件,各司其職,共同實現,最終完成需求。

我們來看植物大戰殭屍的例子。

向日葵可以生產陽光,在植物大戰殭屍中,生產陽光這件事情就是向日葵的職責,同時,向日葵沒事幹的時候,也會搖搖晃晃,另外向日葵還有乙個生命值,殭屍在啃向日葵的時候不是一口吃掉的,而是要啃好幾口。

當我們把生產陽光和搖晃這兩件事情封裝到向日葵這個物件裡面之後,生產陽光和搖晃就是向日葵來負責了,而我們的主程式只需要把向日葵往地上一擺就完成了。

其他的物件如殭屍、射手也是這個道理。使用物件導向開發,主程式的功能就大大簡化了。

在物件導向開發的時候,由於明確了職責,所以在各個物件中的方法很少會出現彼此呼叫的情況。

類和物件是物件導向程式設計的兩個核心概念。

1、類(class)

類是對一群具有相同特徵或者行為的事物的乙個統稱,是抽象的,不能直接使用。

其中特徵被稱為屬性,行為被稱為方法。

舉例說明下:

可以把類看作是製造飛機時的圖紙,當工廠拿到這張圖紙之後,就可以使用這張圖紙製造出飛機了。我們可以在這張圖紙上指定飛機具體什麼樣的特徵,以及飛機具有什麼樣的行為。

在物件導向開發中,我們通常把特徵叫做屬性,把行為叫做方法。

類可以理解為是乙個模板,通過它可以建立出無數個具體例項。它的職責很單一,就是負責建立物件的。

2、物件

物件是由類建立出來的乙個具體存在,可以直接使用。

由哪乙個類建立出來的物件,就擁有在哪乙個類中定義的屬性和方法。

可以把物件理解為根據圖紙製造出來的飛機。

在程式開發中,應該先有類,再有物件。

總結:

類是模板,物件是根據類這個模板建立出來的,應該先有類,再有物件。

類只有乙個,而物件可以有很多個。不同的物件之間屬性可能會各不相同。

類中定義了什麼屬性和方法,物件中就有什麼屬性和方法,不可能多,也不可能少。

物件導向 OOP 基本概念

物件導向程式設計 object oriented programming簡寫oop 1 面相過程 怎麼做?把完成某乙個需求的所有步驟從頭到尾逐步實現 根據開發需求,將某些功能獨立的 封裝成乙個又乙個函式 最後完成的 就是順序地呼叫不同的函式 特點 注重步驟與過程,不注重職責分工 如果需求複雜,會變得...

15 物件導向(OOP)基本概念

面物件程式設計 object oriented programing簡寫oop 把完成某乙個需求的所有步驟,從頭到尾逐步實現 根據開發需求,將某些功能獨立的 封裝成乙個又乙個函式 最後完成的 就是順序地呼叫不同的函式 特點 注重步驟與過程,不注重職責分工 如果需求複雜,會變得很複雜 開發複雜專案,沒...

物件導向 基本概念

物件 由其責任定義的,能夠自己負責自己,從而簡化了使用物件的控制程式的任務。將責任轉移到更區域性的層次。類 class 根據物件所具有的責任定義物件的型別。責任 行為或狀態,這些分別是由方法和或資料實現的。具體類 concrete cass 實現抽象類某一特定型別行為的類,具體類是乙個概念特定不變的...