什麼面向過程,什麼是物件導向,二者之間有什麼區別?
答:這是兩種不同的開發**的模式.
通俗理解:
面向過程----老闆自己獨自作戰----所有的事情都需要自己去玩,親力親為
物件導向---老闆僱傭員工---老闆分配職責,發號施令
(一)類和物件概念
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聯合起來形成乙個子模組,子模組和子模組之間又因為因果關係結合在一起,假設其中任何乙個因果關係出現問題 錯誤...