物件導向基礎

2022-01-22 10:06:24 字數 2444 閱讀 1674

一.物件導向程式設計

1.面向過程程式設計:

側重過程二字,即解決問題的步驟,先幹什麼,後幹什麼,應用場景比較固定

2.物件導向程式設計:

側重物件二字,解決了程式的擴充套件性問題,對某乙個物件的修改,會反應到整個體系中,比如在遊戲中對乙個人物特徵和技能的修改,應用於需求經常變化的場景。

3.類與物件的概念

類:即類別種類,是一系列物件相似特徵與技能的結合體

物件:特徵與技能的結合體

現實中先有物件,然後才有類,在程式中需先定義類,然後才產生物件。

4.類的屬性

兩種屬性:資料屬性、函式屬性

類的資料屬性是所有物件共享的,類的函式屬性是繫結給物件用的

類中定義的函式(沒有被任何裝飾器裝飾的)是類的函式屬性,類可以使用,但必須遵循函式的引數規則,有幾個引數需要傳幾個引數。

類中定義的函式(沒有被任何裝飾器裝飾的),其實主要是給物件使用的,而且是繫結到物件的,雖然所有物件指向的都是相同的功能,但是繫結到不同的物件就是不同的繫結方法

強調:繫結到物件的方法的特殊之處在於,繫結給誰就由誰來呼叫,誰來呼叫,就會將『誰』本身當做第乙個引數傳給方法,即自動傳值(方法__init__也是一樣的道理)

注意:python中一切皆為物件,且python3中類與型別是乙個概念,型別就是類

二.物件導向的組合用法

1.組合:在乙個類中以另外乙個類的物件作為資料屬性,稱為類的組合、

class

weapon:

#def prick(self, obj): # 這是該裝備的主動技能,扎死對方

#obj.life_value -= 500 # 假設攻擊力是500

#class person: # 定義乙個人類

#role = 'person' # 人的角色屬性都是人

#def __init__(self, name,life_value):

#self.name = name # 每乙個角色都有自己的暱稱;

#self.life_value = life_value #生命值

#self.weapon = weapon() # 給角色繫結乙個**;

#alex = person('alex',10000)

#egon = person('egon',5000)

#egon.weapon.prick(alex)

#print(alex.life_value)

#egon.weapon.prick(alex)

#print(alex.life_value)

組合例子:(圓環的面積和周長)

from math import

piclass

circle:

'''定義了乙個圓形類;

提供計算面積(area)和周長(perimeter)的方法

'''def

__init__

(self,radius):

self.radius =radius

defarea(self):

return pi * self.radius *self.radius

defperimeter(self):

return 2 * pi *self.radius

circle = circle(10) #

例項化乙個圓

area1 = circle.area() #

計算圓面積

per1 = circle.perimeter() #

計算圓周長

print(area1,per1) #

列印圓面積和周長

class

ring:

'''定義了乙個圓環類

提供圓環的面積和周長的方法

'''def

__init__

(self,radius_outside,radius_inside):

self.outsid_circle =circle(radius_outside)

self.inside_circle =circle(radius_inside)

defarea(self):

return self.outsid_circle.area() -self.inside_circle.area()

defperimeter(self):

return self.outsid_circle.perimeter() +self.inside_circle.perimeter()

ring = ring(10,5) #

例項化乙個環形

print(ring.perimeter()) #

計算環形的周長

print(ring.area()) #

計算環形的面積

類的組合本質:在乙個類中使用另乙個類的屬性和方法,當類之間有顯著不同,並且較小的類是較大的類所需要的元件時,用組合比較好

物件導向基礎

什麼是物件導向程式設計?就是把萬事萬物都抽象成為物件,一切都是物件!什麼是抽象?抽象是從眾多的事物中抽取出共同的 本質性的特徵,而捨棄其非本質的特徵。例如蘋果 香蕉 生梨 桃子等,它們共同的特性就是水果。得出水果概念的過程,就是乙個抽象的過程。要抽象,就必須進行比較,沒有比較就無法找到在本質上共同的...

物件導向基礎

我想在這個園子裡面的新人,還是 掌門人 都對 物件導向 這幾字非常的耳熟了或者有一定的了解。但當乙個初學都在學習物件導向的時候,會遇到一些瓶頸和麻煩,認為物件導向非常的難以理解。那麼本章節主要是讓大家了解物件導向,並系統地掌握物件導向程式設計的技能點,消除初學者的疑惑.1 如何去學習物件導向的程式設...

物件導向基礎

uml是一種標準的圖形化建模語言,是物件導向分析與設計的一種標準表示 類圖是用來描述類以及類與類之間關係的一種uml圖 類圖描述的關係包括關聯,範化,依賴,實現等 只要類與類之間存在關聯關係就可以用普通關聯來表示 比如 描述人和計算之間的關係 帶 的一端表示關聯的發起方,箭頭表示關聯的方向 0.1 ...