物件導向 1

2022-08-11 16:27:15 字數 3645 閱讀 2389

class

cat:

"""定義了乙個cat類

"""#

初始化物件

def__init__

(self,new_name,new_age):

self.name =new_name

self.age =new_age

#方法defeat(self):

print("

貓在吃魚....")

defdrink(self):

print("

貓正在喝可樂...")

defintroduces(self):

print("

%s的年齡是:%d

" %(self.name, self.age))

#建立乙個物件

tom = cat("

湯姆",40)

#呼叫tom指向的物件中的方法

tom.eat()

tom.drink()

#給湯姆指向的物件新增2個屬性

#tom.name = "湯姆"

#tom.age = 40

tom.introduces() #

相當於tom.introduce(tom)

xiaohua = cat("

小花",2)

#xiaohua.name = "小花"

#xiaohua.age = 2

xiaohua.introduces()

__init__()方法

class

cat:

"""定義了乙個cat類

"""#

初始化物件

def__init__

(self,new_name,new_age):

self.name =new_name

self.age =new_age

def__str__

(self):

return

"%s的年齡是:%d

"%(self.name,self.age)

#方法defeat(self):

print("

貓在吃魚....")

defdrink(self):

print("

貓正在喝可樂...")

defintroduces(self):

print("

%s的年齡是:%d

" %(self.name, self.age))

#建立乙個物件

tom = cat("

湯姆",40)

xiaohua = cat("

小花",2)

print(tom) #

沒有改寫__str__()方法時,返回的為記憶體位址

print(xiaohua)

烤地瓜

class

sweetpotato:

def__init__

(self):

self.cookedstring = "生的"

self.cookedlevel =0

self.condiments =

def__str__

(self):

return

"地瓜 狀態:%s(%d),新增的佐料有:%s

"%(self.cookedstring,self.cookedlevel,str(self.condiments))

defcook(self,cooked_time):

self.cookedlevel+=cooked_time

if self.cookedlevel >= 0 and self.cookedlevel < 3:

self.cookedstring = "生的"

elif self.cookedlevel >= 3 and self.cookedlevel < 5:

self.cookedstring = "

半生不熟

"elif self.cookedlevel >= 5 and self.cookedlevel < 8:

self.cookedstring = "熟了"

elif self.cookedlevel > 8:

self.cookedlevel = "

烤糊了"

defaddcondiments(self,item):

#建立了乙個地瓜物件

di_gua =sweetpotato()

print

(di_gua)

#開始烤地瓜

di_gua.cook(1)

di_gua.cook(1)

di_gua.cook(1)

di_gua.addcondiments("大蒜

")di_gua.cook(1)

print(di_gua)

存放家具

class

home:

def__init__

(self,new_area, new_info,new_addr):

self.area =new_area

self.info =new_info

self.addr =new_addr

self.left_area =new_area

self.contain_items =

def__str__

(self):

msg = "

房子的總面積是:%d,可用面積是:%d,戶型是:%s,位址是:%s

"%(self.area,self.left_area,self.info,self.addr)

msg+="

,當前房子裡的物品有%s

"%(str(self.contain_items))

return

msg

defadditem(self,item):

#self.left_area -= item.area

# self.left_area -=item.get_area()

class

bed:

def__init__

(self,new_name,new_area):

self.name =new_name

self.area =new_area

def__str__

(self):

return

"%s占用的面積是:%d

"%(self.name,self.area)

defget_area(self):

return

self.area

defget_name(self):

return

self.name

fangzi = home(129,"

三室一廳

","北京市朝陽區長安街666號")

print

(fangzi)

bed1 = bed("

席夢思",4)

fangzi.additem(bed1)

print

(fangzi)

bed2 = bed("

三人床",6)

fangzi.additem(bed2)

print(fangzi)

物件導向 1

物件名列印 類名 位址值 1 從磁碟讀取class檔案,載入進方法區的class檔案區 2 將class檔案靜態的屬性和行為的載入進靜態區 3 將class檔案中私有的行為載入進方法區 4 在堆中持有方法的引用 5 讀取class檔案中的成員字段,並初始化 6 在堆中持有方法的引用 7 將這個位址賦...

物件導向1

oc中定義類需要以下兩部分 類介面部分語法 ubte ce用於宣告定義類的藉口部分 inte ce myperson nsobject 宣告成員變數 宣告方法 為方法型別標識 代表為類方法,直接用類名即可呼叫 代表實力方法,需用物件才能呼叫 void 為方法返回值型別 若無返回值需要用void宣告沒...

物件導向1

物件導向程式設計 物件導向程式設計 object oriented programming,oop 主要針對大型軟體設計而提出,使得軟體設計更加靈活,能夠很好地支援 復用和設計復用,並且使得 具有更好的可讀性和可擴充套件性。python中物件的概念很廣泛,python中的一切內容都可以稱為物件。類定...