六 物件導向(中)

2021-08-21 08:15:53 字數 1430 閱讀 8003

• 類的構造方法

• 類的訪問許可權

• 繼承

• 多型

__init__構造方法

• 作用:用於物件建立時初始化

• 書寫格式:init前後分別是兩個下劃線

• 程式不顯示定義init方法,則程式預設呼叫乙個無參init方法

• 物件建立過程

類的構造方法

__init__

設定物件屬性

def __init__(self.gender, variety,name):

self.gender =gender

self.variety = variety

self.name = name

建立物件過程

wangcai = dog("male", "golden", "wangcai")

yuanbao = dog("female", "husky", "yuanbao")

修改物件屬性的方法

• 方法1:物件變數名.屬性 = 新值 • 方法1的問題:

1)可能修改的屬性值不合法

2)在類的外部可以隨意修改類的內部屬性 • 方法2:物件變數名.內部修改屬性方法

私有屬性

• 定義:__私有變數名

• 只能在類內部使用,類外部不能訪問,否則報錯

類的訪問許可權

私有方法

• 只能在類內部呼叫,在類的外部無法呼叫

• 定義私有方法在方法名前新增兩個下劃線

• 類內部呼叫私有方法要使用self.私有方法的方式呼叫

繼承在程式中,繼承描述的是類中型別與子型別之間的所屬關係,例如貓和狗 都屬於動物

 單繼承

• 子類繼承乙個父類,在定義子類時,小括號()中寫父類的類名

• 父類的非私有屬性、方法,會被子類繼承

• 子類中方法的查詢方式:先查詢子類中對應的方法,如果找不到,再

到父類中查詢

• 子類可以繼承父類的屬性和方法,也可以繼承父類的父類的非私有屬

性和方法,依次類推

• 在子類中呼叫父類的方法:classname.methodname(self)

• 重寫父類方法

 子類對父類允許訪問的方法的實現過程進行重新編寫  在子類中定義與父類同名的方法

 優點:子類可以根據需要,定義合適的方法實現邏輯

 多繼承

• object類是所有類的基類,在定義類的時候不需要顯示的在括

號中表明繼承自object類

• 多繼承:乙個子類可以繼承多個父類

• 多繼承定義方式:在類名後的括號中新增需要繼承的多個類名

• 多繼承中,如果多個類中有同名的方法,子類呼叫查詢方法的

順序是按照小括號內繼承父類從左到右的順序查詢,第乙個匹

配方法名的父類方法將會被呼叫  多型

• 乙個抽象類有多個子類,不同的類表現出多種形態

六 物件導向案例分析

編寫乙個完整的位址類進行測試,並列印出來class address public address string countrv,string porvince,string city,string district public void send public string getcountrv ...

核心程式設計(六) 物件導向 封裝

什麼是封裝呢?在前面是不是寫過這樣的 class dog froom ch def init self,name,age,kind erha self.blood 100 self.kind kind self.age age self.name name在當時我是不是說 ini 下放的是例項的私有...

(六)物件導向高階程式設計

如果我們想要限制例項的屬性怎麼辦?比如,只允許對student例項新增name和age屬性。為了達到限制的目的,python允許在定義class的時候,定義乙個特殊的slots變數,來限制該class例項能新增的屬性 class student object slots name age 用tupl...