學(xué)過C++或者Java的同學(xué)一定了解過面向?qū)ο蟮南嚓P(guān)內(nèi)容,編程語言一般分為兩種設(shè)計方式:面向?qū)ο?/strong>、面向過程,早期的編程語言多是面向過程的,由多個過程組合在一起,而Python在設(shè)計的時候就是一種面向?qū)ο蟮恼Z言,因此在Python是面向?qū)ο蟮木幊陶Z言。本節(jié)我們先來了解一下面向?qū)ο缶幊痰母拍睢?br/>
1. 對象
首先我們要學(xué)習(xí)一下什么是對象,對象的英文是‘Object’,我們的生活中到處都是對象,你面前的電腦、手中的手機或者是書架上的書等等都是對象,對象是一種實際存在的實體。
我們在學(xué)習(xí)對象的時候可以把對象看成兩個部分,一部分稱為屬性,一部分稱為行為。
例如:我們買了一個鬧鐘,鬧鐘的材質(zhì)是它的屬性,當(dāng)鬧鐘響起來的時候是它的行為。
2. 類
我們在前面學(xué)習(xí)過的數(shù)據(jù)類型都屬于類,類是Python的基本構(gòu)造,在類中包含很多方法,我們在學(xué)習(xí)類的時候可以把類理解為一個教室,當(dāng)我們創(chuàng)建了一個教室的時候,我們規(guī)定這個教室需要學(xué)習(xí)語文、數(shù)學(xué)和英語,當(dāng)一個學(xué)生加入這個班級,就需要學(xué)習(xí)這三門科目,類往往是我們定義的一個載體,類中的成員會具有相同的屬性和行為。
我們可以把所有汽車看成一個類,也可以把所有飛機看成一個類,類是一種比較抽象的概念,我們在定義的時候要根據(jù)實際情況來定義。
面向?qū)ο缶幊逃腥筇攸c:封裝、繼承和多態(tài)。
3. 封裝
關(guān)于封裝,我們可以舉生活中的例子來學(xué)習(xí)一下,首先我們先從字面意思思考一下,封裝就是把東西封了起來,當(dāng)我們買了一臺音響,音箱內(nèi)部存在電路板、線路等結(jié)構(gòu),而我們使用者不需要去知道他的內(nèi)部結(jié)構(gòu)和使用原理,所以這些結(jié)構(gòu)被封閉在箱體內(nèi)部,在箱體外提供一些接口供我們連接,這些在音箱內(nèi)部的屬于封裝起來的東西。
我們在寫程序的時候也可以采用封裝的理念,對于一些內(nèi)容我們不提供接口來使用它們,它們屬于內(nèi)部的構(gòu)造,屬于不可變的內(nèi)容,這種內(nèi)容即為封裝。
4. 繼承
提到繼承,大家一般都會聯(lián)想到遺產(chǎn),我們?nèi)绻眠z產(chǎn)來形容繼承的話,在現(xiàn)實生活中的遺產(chǎn)繼承一般是單對單的,如果是單對多的形式,那么多個人獲取到的遺產(chǎn)很有可能是不一致的,而我們在程序里的繼承是一種完全繼承的關(guān)系。
我們可以把車看為一個對象,然后不管是奔馳車還是寶馬車又或者是大眾車,這些車都繼承了車的全部屬性和行為。我們把車看成一個類,給車定義了在地面駕駛和4個輪胎的屬性,那么當(dāng)寶馬車來繼承這個類,寶馬車就獲得了在地面駕駛和4個輪胎的屬性,如果我們給車定義了高速行駛的行為,那么寶馬車也繼承了它高速行駛的行為。
我們在使用繼承關(guān)系的時候,我們把車稱為‘超類’或者‘父類’,而繼承而來的寶馬車稱為‘子類’或者‘派生類’。
5. 多態(tài)
多態(tài)就是一個父類有多個屬性,根據(jù)這些屬性而衍生了多個子類,我們繼續(xù)拿車來舉例,我們可以給車定義兩個屬性,一個在馬路上行駛,一個是在軌道上行駛,而這兩種屬性又都包括可載人,那么我們在定義子類的繼承的時候,就可以定義了兩種子類,一種是可載人的但在馬路上行駛的汽車,一種是可載人但在軌道上形式的汽車,這種一個類衍生出多個子類,他們有公共屬性也有私有屬性的方式稱為多態(tài)。
6. 總結(jié)
關(guān)于類和對象這兩種概念,在我們學(xué)習(xí)編程的時候至關(guān)重要,不管是計算機的任何行業(yè),一定離不開類和對象的使用,多多使用生活中的例子去思考一下什么是類和對象,下一節(jié)我們來學(xué)習(xí)類的定義和使用。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:
一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進階課程
從零到寫出一個爬蟲的Python編程課程
只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍橋杯輔導(dǎo)課程