1. 程式人生 > >面向對象基礎知識點小結

面向對象基礎知識點小結

名詞 函數 特點 用戶 編程方式 類型 如何 enca ram

一、編程範式:

編程是程序員用特定的 語法+數據結構+算法 組成的代碼來告訴計算機如何執行任務的過程 。

一個程序是程序員為了得到一個任務結果而編寫的一組指令的集合,正所謂條條大路通羅馬,實現一個任務的方式有很多種不同的方式,對這些不同的編程方式的特點進行歸納總結得出來的編程方式類別,即為編程範式。不同的編程範式本質上代表對各種類型的任務采取的不同的解決問題的思路,大多數語言只支持一種編程範式,當然也有些語言可以同時支持多種編程範式。兩種最重要的編程範式分別是面向過程編程和面向對象編程。

二、面向過程編程

面向過程:核心是過程二字,過程指的是解決問題的步驟,設計一條流水線,機械式的思維方式。

基本設計思路就是程序一開始是要著手解決一個大的問題,然後把一個大問題分解成很多個小問題或子過程,這些子過程再執行的過程再繼續分解直到小問題足夠簡單到可以在一個小步驟範圍內解決。

優點:復雜的問題流程化,進而簡單化

缺點:可擴展性差,下面的例子如果想擴展interactive()的功能,比如說加個認證的信息,那麽下面的函數被迫的也需要做相應的改動

技術分享圖片

三、面向對象編程(Object Oriented Programing

OOP(Object Oriented Programing)編程是利用“類”和“對象”來創建各種模型來實現對真實世界的描述。

1(1)面向對象:核心就是對象二字,對象就是特征與技能的結合體

(2)優點:可擴展性強,只是解決可擴展性的問題,並不代表解決所有問題。必備的技能!

(3)缺點:編程復雜度高

在實際中要具體問題具體分析,對於擴展性要求不高的可以用面向過程的編程,但是絕大多數程序對擴展性要求都很高,所以面向對象編程是必備技能!

(4)應用場景:用戶需求經常變化,互聯網應用,遊戲,企業內部應用

(5)類 就是一系列對象相似的特征與技能的結合體

(6)強調:站在不同的角度,得到的分類是不一樣的

(7)在現實世界中:一定先有對象,後有類

(8)在程序中:一定得先定義類,後調用類來產生對象

2、(1)名詞解釋

類:一個類即是對一類擁有相同屬性的對象的抽象、藍圖、原型、模板。在類中定義了這些對象的都具備的屬性(variables(data))、共同的方法

屬性:人類包含很多特征,把這些特征用程序來描述的話,叫做屬性,比如年齡、身高、性別、姓名等都叫做屬性,一個類中,可以有多個屬性

方法:人類不止有身高、年齡、性別這些屬性,還能做好多事情,比如說話、走路、吃飯等,相比較於屬性是名詞,說話、走路是動詞,這些動詞用程序來描述就叫做方法。

實例(對象):一個對象即是一個類的實例化後實例,一個類必須經過實例化後方可在程序中調用,一個類可以實例化多個對象,每個對象亦可以有不同的屬性,就像人類是指所有人,每個人是指具體的對象,人與人之前有共性,亦有不同

實例化:把一個類轉變為一個對象的過程就叫實例化

(2)面向對象的三大特征

<1>Encapsulation 封裝

在類中對數據的賦值、內部調用對外部用戶是透明的,這使類變成了一個膠囊或容器,裏面包含著類的數據和方法

<2>Inheritance 繼承

一個類可以派生出子類,在這個父類裏定義的屬性、方法自動被子類繼承

<3>Polymorphism 多態

多態是面向對象的重要特性,簡單點說:“一個接口,多種實現”,指一個基類中派生出了不同的子類,且每個子類在繼承了同樣的方法名的同時又對父類的方法做了不同的實現,這就是同一種事物表現出的多種形態。

編程其實就是一個將具體世界進行抽象化的過程,多態就是抽象化的一種體現,把一系列具體事物的共同點抽象出來, 再通過這個抽象的事物, 與不同的具體事物進行對話。

對不同類的對象發出相同的消息將會有不同的行為。比如,你的老板讓所有員工在九點鐘開始工作, 他只要在九點鐘的時候說:“開始工作”即可,而不需要對銷售人員說:“開始銷售工作”,對技術人員說:“開始技術工作”, 因為“員工”是一個抽象的事物, 只要是員工就可以開始工作,他知道這一點就行了。至於每個員工,當然會各司其職,做各自的工作。

多態允許將子類的對象當作父類的對象使用,某父類型的引用指向其子類型的對象,調用的方法是該子類型的方法。這裏引用和調用方法的代碼編譯前就已經決定了,而引用所指向的對象可以在運行期間動態綁定

3、如何操作類

1)類在定義的時候裏面的代碼便會運行

2)第一大操作是對屬性的操作,第二大操作是實例化產生出一個個的對象

技術分享圖片

4、如何操作對象

(1)__init__方法:

加上__init__方法後,實例化的步驟:

<1>先產生一個空對象(student1)

<2>像這樣:whw_school.__init__(student1,’wanghw’,’男’,27),將之前創建好的空對象student1連同後面三個值同時傳遞給__init__方法。

技術分享圖片

(2)對象的使用,屬相查找

<1>對象是特征與技能的結合體類是一系列相似的特征與相似的技能的結合體

<2>在Python中產生一個對象,這個對象本身只有自己獨有的特征,但是它跟別的對象相似的技能與特征要是有的話需要放在“類”裏。

<3>類中的數據屬性是所有對象共有的(id(student1.school)與id(student2.school)相同)。

技術分享圖片

<4>類的函數屬性,是綁定給對象的,綁定到不同的對象是不同的綁定方法

技術分享圖片

<5>對象調用綁定方法時,會將對象本身當做第一個參數傳進去。若有第二個參數該怎麽傳就怎麽傳。

技術分享圖片

<6>對象在找一個屬性的時候,先從自己的空間裏找,如果沒有的話再從類裏面找。如果類裏還沒有的話再父類裏面找,不會去全局找的~~

技術分享圖片

技術分享圖片

面向對象基礎知識點小結