1.什么是面向對象
面向對象(oop)是一種抽象的方法來理解這個世界,世間萬物都可以抽象成一個對象,一切事物都是由對象構成的。應用在編程中,是一種開發程序的方法,它將對象作為程序的基本單元。
2.面向對象與面向過程的區別
我們之前已經介紹過面向過程了,面向過程的核心在‘過程'二字,過程就是解決問題的步驟,面向過程的方法設計程序就像是在設計一條流水線,是一種機械式的思維方式
優點:復雜的問題簡單化,流程化
缺點:擴展性差
主要應用場景有:Linux內核,git,以及http服務
面向對象的程序設計,核心是對象,對象就是特征(變量)與技能(函數)的結合體。
優點:解決了程序擴展性差的問題
缺點:可控性差,無法預測最終結果
主要應用場景是需求經常變化的軟件,即與用戶交互比較頻繁的軟件
需要注意的是:面向對象的程序設計并不能解決全部問題,只是用來解決擴展性。當然,現在的的互聯網軟件,擴展性是最重要的
3.對象與類的概念
在python中,一切皆對象,一個對象應該具有自己的屬性,也就是特征,還有有自己的功能,即方法
在Python中,特征用變量表示,功能用函數表示,所以對象就是變量與函數的結合體
而從各種各樣的對象中抽取出來具有相同特征和相同功能組成的,就是類,所以說類是一系列對象共同特征與功能的結合體
下面讓我們來定義一個類,方法與定義一個函數有些類似:
#定義一個中國人的類class Chinese: #共同的特征 country='China' #共同的技能 def talk(self): print('is talking Chinese') def eat(self): print('is eating Chinese food')這樣我們就定義好了一個類,注意:
1.定義類用class關鍵字
2.類名一般首字母大寫,且冒號前面不需要括號(非必須,有括號也不報錯,一般需要繼承object類來保證是新式類),區別于函數定義
3.與函數不同,類在定義階段就會執行類里面的代碼
4.類有兩種屬性,共同的特征叫數據屬性,共同的功能叫函數屬性
怎樣由這個類產生一個對象呢?實例化:
#實例化的方式產生一個對象p1=Chinese()p2=Chinese()
我們可以得出結論了,不管現實世界中怎么樣,但是在程序中,確實是先有類,才有的對象
我們已經通過實例化的方式得到兩個對象了,但是有一個問題,得到的兩個對象,特征和功能都是一樣的,這根萬物皆對象的理念完全不符啊,應該是每個對象都是不同的,這樣的世界才有意思啊
新聞熱點
疑難解答