物件導向(一) 初步認識

2022-07-11 05:33:08 字數 2357 閱讀 8396

什麼面向過程,什麼是物件導向,二者之間有什麼區別?

答:這是兩種不同的開發**的模式.

通俗理解:

​ 面向過程----老闆自己獨自作戰----所有的事情都需要自己去玩,親力親為

​ 物件導向---老闆僱傭員工---老闆分配職責,發號施令

(一)類和物件概念

1 類和物件

類:將多個物件共同具有的特徵和行為抽象出來,定義乙個名字

示例:物以類聚,人以群分

物件:具有特徵和行為的乙個具體概念,強調具體

2 類和物件之間的關係

3 區分類和物件

筆記本   # 類

thinkpad筆記本 # 類

t440s thinkpad筆記本 # 類

編號為123123的t440s筆記本 # 物件

汽車 # 類

寶馬汽車 # 類

5系寶馬 # 類

樓下停著的那輛5系寶馬車 # 物件

(二) 屬性和方法
#類的定義格式

class 類名:

def __init__(self):

"""定義屬性:描述特徵"""

self.屬性1 = 屬性值1

self.屬性2 = 屬性值2

...def 方法1(self):

"""具體描述的行為1"""

pass

def 方法2(self):

"""描述的行為2"""

pass

...# 通過類建立物件,如果init函式中有引數則需要傳入

物件名 = 類名()

# 物件呼叫具體屬性和方法

# 呼叫屬性

物件名.屬性名

# 呼叫方法

物件名.方法名() # 傳參時不需要給self傳

說明:

物件導向設計

物件導向程式設計開發,是一種成熟的程式設計開發方式,有固定的開發步驟,通常包含如下四個環節:

self誰呼叫我,我就是誰-----哪個物件呼叫某個方法,那麼該方法的self就是該物件

class person:

def __init__(self,name,age,height):

"""描述乙個人的特徵"""

self.name = name

self.age = age

self.height = height

def eat(self):

"""描述吃飯行為"""

print(f"self的記憶體位址是")

print(f"中午吃的是阿明煲仔飯,吃出了頭髮~")

def sleep(self):

print(self.age)

zs = person('zs',20,180)

ls = person('ls',22,175)

print(f"zs的記憶體位址是")

zs.eat()

print('********************==')

print(f"ls的記憶體位址是")

ls.eat()

屬性和變數區別

屬性:self.屬性名 = 值,可以在整個類的內部任何方法中使用。

變數: 變數名= 值,變數只能夠在某個函式內起作用。是乙個區域性變數

例項屬性和方法都是描述具體某乙個物件的。

例項屬性:指在__init__方法中定義的屬性

例項方法:指方法中具有乙個引數self.

物件建立過程:__new__方法建立物件並將物件返回給__init__方法,__init__方法對該物件進行初始化操作

問題:__new__和__init__方法哪個先執行?

_new_ 方法

class person:

def __new__(cls, *args, **kwargs):

"""建立乙個物件"""

print("執行了new方法")

return object.__new__(cls)

def __init__(self,name):

"""例項初始化方法"""

print("執行了init方法")

self.name = name

def eat(self):

print('eat')

ls = person('ls')

print(ls)

ls.eat()

python 物件導向初步認識

什麼是物件導向?python是一門物件導向的語言 所謂的面相物件 oop 就是在程式設計的時候盡可能的去模擬真實的現實世界,按照現實世界中的邏輯去處理問題,分析問題中引數其中的有哪些實體,這些屍體應該有什麼屬性和方法,我們如何通過呼叫這些實體的屬性和方法去解決問題 類 可以理解為模版,本身不可用,通...

物件導向以及類初步認識

物件 資料 資料型別 函式 比如 洗衣機 外觀 型別 滾筒,波輪 品牌 小天鵝,海爾 型號長,寬,高 功能 洗衣服 我們上一章中所提到struct 結構體 可以實現成員 如 struct 洗衣機 洗衣服的實現它還要通過乙個函式來實現 如void 洗衣服 洗衣機,衣服 這樣兩個是分開的,洗衣服和洗衣機...

認識物件導向

從語言方面出發 什麼是面向過程的開發方式?面向過程的開發方式主要的特點是 面向過程有什麼缺點?耦合度高,擴充套件力差。面向過程最主要是每一步與每一步的因果關係,其中a步驟因果關係到b步驟,a和b聯合起來形成乙個子模組,子模組和子模組之間又因為因果關係結合在一起,假設其中任何乙個因果關係出現問題 錯誤...