面向?qū)ο螅?/h1>
一種編程思想筋蓖,和具體的語言無關(guān);所有支持面向?qū)ο?br> 程序設(shè)計開發(fā)的編程語言的面向?qū)ο箝_發(fā)的思想都是一致的退敦!
面向?qū)ο蟮暮诵模侯惡蛯ο?/h2>
類:類型粘咖、數(shù)據(jù)類型;從對象中抽取出來的一個抽象的概念
定義某種類型的特征和行為操作
對象:通過某個指定的類型創(chuàng)建出來的具有具體屬性和具體行為
的實(shí)體侈百;
面向?qū)ο笕筇卣鳎悍庋b瓮下,繼承,多態(tài)
封裝又分為:數(shù)據(jù)封裝 行為【方法】封裝 屬性封裝
1.數(shù)據(jù)封裝:將程序中需要的數(shù)據(jù)
按照統(tǒng)一的格式封裝在類型的內(nèi)部钝域,通過該類型的對象
包裝使用數(shù)據(jù)讽坏!
2.行為方法封裝:處理某個獨(dú)立功能-> 封裝成一個獨(dú)立的函數(shù)
獲取系統(tǒng)當(dāng)前時間--封裝成一個具體的功能函數(shù)
處理和某個數(shù)據(jù)關(guān)聯(lián)的功能-> 功能代碼封裝成函數(shù),講函數(shù)封裝在類型中[方法]
處理具體功能的方法例证,就和對應(yīng)的數(shù)據(jù)強(qiáng)制關(guān)聯(lián)路呜,方便統(tǒng)一管理維護(hù)
3.屬性封裝: 通過方法限制屬性的訪問,提高屬性的安全性
通過項(xiàng)目的規(guī)范织咧,規(guī)定了一個下劃線開頭的屬性
是屬于對象的私有屬性胀葱,不能在類型的外部調(diào)用!
但是總有人不懂笙蒙,破壞了規(guī)范
通過語法限制抵屿,讓屬性私有化,不讓外界直接訪問
python中規(guī)定了手趣,兩個下劃線開頭的屬性是私有的
語法上外界不能直接訪問
封裝的核心思想:
保障數(shù)據(jù)安全晌该!
對象中的數(shù)據(jù)-> 對象的屬性-> 屬性數(shù)據(jù)安全-> 不能直接訪問
對象的中的屬性數(shù)據(jù)->間接訪問得到【通過提供的訪問方法】
訪問方法:添加獲取數(shù)據(jù)的限制條件肥荔、添加數(shù)據(jù)的限制代碼!
繼承:讓一個類型[子類]繼承另一個類型[父類]朝群,相當(dāng)于繼承了父類中的公開的屬性和方法
在子類中不需要重復(fù)編寫即可使用燕耿,提高了代碼的復(fù)用性!體現(xiàn)的是A is a B的關(guān)系
繼承的意義
子類中可以編寫父類中沒有的屬性和方法
實(shí)現(xiàn)功能的擴(kuò)展姜胖!
繼承的語法結(jié)構(gòu)
class 類型(要繼承的類型):
pass
當(dāng)前類型:子類
要繼承的類型:父類
子類繼承父類
怎么查看自己到底繼承了那些父類:
魔法屬性:base 查看當(dāng)前類型繼承的父類
怎么查看當(dāng)前類型:
通過類型的class魔法屬性誉帅,直接查看,和type(類型名稱)效果一致右莱!
對象.class == type(對象)--> 得到當(dāng)前對象的所屬類型
怎么查看當(dāng)前類型的所有子類:
通過類型的subclasses魔法函數(shù)蚜锨,直接查看當(dāng)前類型的所有子類
多態(tài)就是多繼承的衍生
體現(xiàn)的是 生活中 一個對象 會有多個角色的概念