物件:有具體特徵和行為操作的事物
**:有具體(特徵)屬性和(行為)方法的物件(將物件行為特徵抽象化用**表示)
1、**->還原生活場景
簡單的**操作-> 基礎語法,堆疊功能[變數、資料型別、運算、if、while]
函式式程式設計-> 將所有要處理的事情,開始封裝成具備一定處理功能的函式,呼叫執行
2、【面向過程程式設計】
開發人員將完成事情的操作步驟封裝在函式中,通過函式呼叫執行這樣的開發操作,**中封裝了大量的
包含處理步驟的函式。
(適合中小型專案開發;大型專案開發[**的邏輯處理方式不夠成熟,導致**高耦合!)
【物件導向程式設計】
對面向過程程式設計的補充和完善,通過物件和物件之間的互動協作完成專案功能的開發還原生活場景。
(適合大型專案開發)
型別(類):**中可以通過class關鍵字,自定義乙個資料型別
(1)資料型別:簡稱型別:簡稱類-> 自定義資料型別-> 自定義 類
(2)基本語法:
通過class 關鍵字進行定義
class 資料型別名稱:
型別中的**
example:
# 建立乙個person型別
class person:
pass
3. 物件的建立和使用
(3)型別名稱命名規範:見名知意、駝峰命名法[乙個或者多個英文單詞組成、每個單詞首字母大寫]
(4)型別:通過專案中需要的大量有相似特徵和行為的物件,抽象出來的乙個資料型別
型別:通過物件抽象出來的乙個資料型別。 型別中需要定義物件需要的特徵[屬性|變數]和行為[方法]
通過class 關鍵字進行定義
語法: class 資料型別名稱:
pass
# 建立乙個person型別
# 定義屬性、特徵
# 固定寫法:在__init__方法中,定義型別的屬性
注意1:class 關鍵字,用來宣告定義乙個型別,固定寫法
注意2:型別中的所有函式,第乙個引數self表示當前物件,類似生活中的乙個名詞:我
注意3:型別中的函式,必須稱為方法;
函式 vs 方法 : 方法是一種特殊的函式,只能在型別中使用!
注意4:型別中方法,第乙個引數:指代的是當前物件~~~一般被宣告為self
表示當前物件,呼叫的時候不需要傳遞資料給self!
通過class 關鍵字直接宣告定義乙個自定義型別
語法:class 資料型別名稱:
pass
1、語法:物件的特徵,是需要在型別中定義的!在通過型別建立物件時,才會給具體的特徵賦值給物件的特徵賦值,
固定語法:在__init__()函式中操作class author:
# 給物件的特徵賦值,在__init__()中進行操作
def __init__(self, username, password, nickname):
self.username = username
self.password = password
self.nickname = nickname
python中通過型別建立物件[a = author()]會自動呼叫__init__()方法
建立物件a = author()-> author.__new__()方法建立物件
-> author.__init__()方法初始化資料
-> 得到乙個author物件
在python中,有一種特殊的函式:魔法函式
每個魔法函式有一些特定的功能,方法名稱都是固定的
魔法函式的命名規則:函式的前後各有兩個下劃線!
2、將乙個函式,定義在型別的內部,第乙個引數~設定為可以接受物件的引數:selfclass author:
# 定義乙個行為:個人介紹
def introduction(self):
print("個人介紹.........")
注意:方法和函式的最大的區別:
方法:第乙個引數可以隱式接受當前物件作為實際引數 。
方法是定義在型別的內部的 。
方法的呼叫必須通過物件的引用變數呼叫。
函式:函式中的任何形式引數,在呼叫的時候都需要明確的傳遞資料 。
函式是定在型別的外部的。
函式的呼叫直接通過函式名稱呼叫。
3、呼叫執行方法:類似與呼叫執行函式
# 方法的呼叫執行:必須通過物件的引用變數進行呼叫!
author = author()
author.introduction()
04python入門 物件導向初識
類與物件 classmethod類方法 staticmethod靜態方法 物件 子類判斷 反射核心是過程 流水線思維 優點是 極大的降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點是 一套流水線或者流程就是用來解決乙個問題,牽一髮而動全身。應用場景 一旦完成基本很少改變的場景,著名的例...
快速入門物件導向設計
物件導向設計把握乙個重要的經驗 誰擁有資料,誰就對外提供操作這些資料的方法。幾個典型的案例 人在黑板上畫圓 有人物件 黑板物件 圓物件,畫圓這個動作必須用到了圓心座標x y和半徑r,而x y r是圓內部的資料,圓擁有這些資料,所以這個動作時圓的,而不是黑板的,更不是人的。列車司機緊急剎車 有列車物件...
Java入門 物件導向一
物件導向與面向過程 面向過程 線性思維,事物比較簡單 物件導向 簡單的線性思維無法解決,利用大局思維找乙個能解決該問題的物件去解決問題,比如之前的鍵盤錄入就是找到scanner去解決問題。面對物件方便從巨集觀上管理,具體實現還是面向過程的方式。物件和類的關係 類是抽象的,類是確定物件會擁有的特徵 屬...