8分鐘搞懂面向?qū)ο缶幊?| 面向過程vs面向?qū)ο?| OOP | 封裝 繼承 多

Hello!勵(lì)志成為科代表的我出現(xiàn)了,我會(huì)在合集和分P視頻里出現(xiàn)制作筆記(but孩子要考試,可能不能及時(shí)出現(xiàn))。
本筆記適用于當(dāng)你認(rèn)真學(xué)習(xí)了本套教程后的復(fù)習(xí),最后放上一些合集筆記鏈接
https://www.bilibili.com/read/readlist/rl656437?spm_id_from=333.999.0.0
P26-29 面向?qū)ο缶幊?/strong>
一、面向過程編程
1.過程:指完成某個(gè)具體任務(wù)的代碼,基本為函數(shù)
2.核心:實(shí)現(xiàn)的事情拆分成步驟依次完成
3.問題:隨著邏輯難度提升代碼清晰度下降
二、面向?qū)ο缶幊汤碚摬糠?/strong>
1.類是創(chuàng)建對(duì)象的模板,類是對(duì)象的實(shí)例。類定義了對(duì)象的屬性和方法
2.優(yōu)點(diǎn):減少參數(shù),有利簡(jiǎn)化程序邏輯,清晰邏輯及后續(xù)數(shù)據(jù)流動(dòng),可以綁定相關(guān)性質(zhì)特點(diǎn)
3.特性:封裝,繼承,多態(tài)
(1)封裝:寫類的人將內(nèi)部實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),使用類的人只通過外部接口訪問使用,可減少外部使用精力
(2)繼承:允許創(chuàng)建有層次的類。類可以有子類和父類來(lái)表達(dá)從屬關(guān)系,可減少代碼冗余
(3)多態(tài):因?yàn)閷?duì)象具體類的不同而有不同的表現(xiàn),可統(tǒng)一調(diào)用同一名稱的方法調(diào)用實(shí)質(zhì)不同的方法
三、類定義屬性的運(yùn)用
1.基本格式:class 類名稱:
定義類的代碼
定義類的代碼
2.命名類方法:Pascal命名法
用首字母大寫來(lái)區(qū)分單詞(和駝峰差不多)
3.構(gòu)造函數(shù):
(1)作用:定義實(shí)例對(duì)象的屬性
(2)基本格式:
class 類名稱:
def __init__(self,參數(shù)):
self.參數(shù) = 參數(shù)
(這里self用于綁定屬性值到對(duì)象自身)
4.創(chuàng)建對(duì)象:類名 = 對(duì)象(參數(shù))
5.獲取對(duì)象屬性:類名.屬性(參數(shù))名
注:三、四中的self參數(shù)不需手動(dòng)傳入
四、類定義方法的運(yùn)用
1.格式要求:
在class關(guān)鍵字后縮進(jìn),同__init__,括號(hào)內(nèi)要先跟self表示對(duì)象自身,其余同普通方法(見P18)
(這里self用于獲取修改和對(duì)象綁定的屬性)
2.調(diào)用方法:對(duì)象.方法名(參數(shù))
五、類繼承
1.創(chuàng)建方法:
創(chuàng)建一個(gè)父類,在創(chuàng)建子類時(shí),在子類名稱后面跟上(父類名)
注:在調(diào)用子類屬性和方法時(shí),會(huì)優(yōu)先看所屬類有無(wú)該方法,若沒有時(shí)查找父類中有無(wú)該方法
3.super方法
(1)為避免調(diào)用子類屬性方法時(shí)方法屬性不完整,使用super方法,其將會(huì)返回當(dāng)前子類的父類
(2)使用:
def __init__(子類參數(shù)):
super __init__(父類參數(shù)):
4.使用繼承的情況:A是B→class A(B)