22 物件導向

2022-05-09 23:14:15 字數 1794 閱讀 1824

1、物件導向

物件導向的程式設計的核心是物件(上帝式思維),要理解物件為何物:物件就是單獨的個體,程式的設計都是在這個個體之內。

優點:解決了程式的擴充套件性。對某乙個物件單獨修改,會立刻反映到整個體系中,如對遊戲中乙個人物引數的特徵和技能修改都很容易。

缺點:可控性差

類:抽象的,我能知道什麼屬性,有什麼技能,但不知道屬性的具體的值

物件,有具體的值,技能和屬性都是根據類的規範

2、類和物件

類:具有相同特徵的一類事物(人、狗、老虎)

物件:具體的某乙個事物(隔壁阿花、樓下旺財)

例項化:類到物件具體例項的過程

1)類名 ()  創造出乙個物件,並且創造了乙個self變數

呼叫__init__方法,類名括號裡的引數會在這裡被接收

執行__init__方法

返回self

2)物件能做的事

檢視屬性

呼叫方法

__dict__對於物件的增刪改查都可以通過字典的語法進行

3)類名能做的事

例項化呼叫方法,要自己傳遞self引數

呼叫類中的屬性,也就是呼叫靜態屬性

__dict__呼叫類中的屬性,只能檢視,不能修改

3、具體例項:

class person:                    #

類名 country= '

china'#

創造了乙個只要是這個是這個類就有的屬性,

#類屬性,是靜態屬性

def__init__(self,name,blood,aggr,kind): #

初始化方法,self是乙個必須傳的引數

self.name=name #

self是乙個可以儲存很多屬性的大字典

self.blood=blood

self.aggr=aggr

self.kind=kind

def attack(self,dog): #

方法,一般情況下必須傳self引數,且必須寫在第一

dog.blood -= self.aggr #

個,後面可以傳很多引數,是自由的

print

(dog.blood)

jin=dog('

金老闆',100,20,'

male

') #

類名例項化物件,jin就是例項化

alex=person('

alex

',100,30,'男'

)print(alex.country) #

類名,可以看類的屬性,不需要例項化就可以看屬性

print(alex.__dict__) #

檢視所有屬性

alex.attack(jin) #

相當於person.attack(alex,jin),呼叫方法 類名.方法名(物件名)

class

dog:

def__init__

(self,name,blood,aggr,kind):

self.name=name

self.blood=blood

self.aggr=aggr

self.kind=kind

defbite(self,person):

person.blood -=self.aggr

print(person.blood)

未完待續……

物件導向2 2

物件導向2 2 一 知識點 1.介面 2.多型 3.內部類 二 介面 1.當乙個抽象類中的方法都是抽象的時候,這時可以將該抽象類用 介面 inte ce來代替。2.介面中的成員修飾符是固定的 只能有這個兩種元素 3.介面的出現將 多繼承 通過另一種形式體現出 來,即 多實現 三 介面的特點 1.介面...

python學習之路22 物件導向

物件導向函式都是定義了一類事物,直到呼叫函式,賦值給物件後才開始執行 類是抽象的,有屬性,有技能,但不知道他們具體的值,需通過傳參才能執行 物件有具體的值 屬性和技能,都是根據類規範的 class dog 類名 一次模擬小狗的簡單嘗試 def init self,name,age 初始化方法,sel...

day22 初始物件導向 類

類 具有相同特徵的一類事物 人 狗 老虎 物件 例項 具體的某乙個事物 隔壁阿花 樓下旺財 class person 類名 country china 創造了乙個只要是這個類就一定有的屬性 類屬性 靜態屬性 def init self,args 初始化方法,self是物件,是乙個必須傳的引數 sel...