分析出解決問題的步驟,然後逐步實現。
例如:婚禮籌辦
– 發請柬(選**、措詞、製作)
– 宴席(場地、找廚師、準備桌椅餐具、計畫菜品、購買食材)
– 婚禮儀式(定婚禮儀式流程、請主持人)
公式:程式 = 演算法 + 資料結構
優點:所有環節、細節自己掌控。
缺點:考慮所有細節,逐個實現功能工作量大。
找出解決問題的人,然後分配職責。
例如:婚禮籌辦
– 發請柬:找攝影公司(拍**、製作請柬)
– 宴席:找酒店(告訴對方標準、數量、挑選菜品)
– 婚禮儀式:找婚慶公司(對方提供司儀、制定流程、提供裝置、幫助執行)
公式:程式 = 物件 + 互動
優點(1) 思想層面:
– 更接近於人的思維方式。
– 有利於梳理歸納、分析解決問題。
(2) 技術層面:
– 高復用:對重複的**進行封裝,提高開發效率。
– 高擴充套件:增加新的功能,不修改以前的**。
– 高維護:**可讀性好,邏輯清晰,結構規整。
類:乙個抽象的概念,即生活中的」類別」。比如汽車,這樣的類的概念,這是抽象的,看不見的
物件:類的具體例項(類別的具體例項),即歸屬於某個類別的」個體」。
類是建立物件的」模板」.(物件是從類裡面建立出來的)
– 資料成員:名詞型別的狀態。
– 方法成員:動詞型別的行為。
類與類不同在於行為上的不同
例如:汽車(啟動、行駛、停止) 狗(叫、吃飯、搖尾巴)
只要寫類 ,類和類之間的方法(行為)一定不一樣!
物件與物件資料不同
例如:紅旗 與寶馬x5,具有的行為一樣(啟動、行駛、停止),但是擁有的資料不一樣(比如品牌、排量)
行為不一樣區分類,資料不一樣區分物件!同乙個類裡面的不同物件公用的是同樣的方法。
舉例:學生student是乙個類,具有姓名,年齡等資料;具有學習study,工作work等行為。
學生物件:悟空同學,28歲。 八戒同學,29歲。
**class 類名:
」」」文件說明」」」
definit(self,引數列表):
self.例項變數 = 引數
(資料成員)
方法成員
eg : def study(self,name):
self.name=name
def study(self):
pass
說明– 類名所有單詞首字母大寫.
– init 也叫建構函式,建立物件時被呼叫,也可以省略。
– self 變數繫結的是被建立的物件本身。
例項就是指物件
建立物件:變數 = 建構函式 (引數列表)
語法(1) 定義:物件.變數名
(2) 呼叫:物件.變數名
說明(1) 首次通過物件賦值為建立,再次賦值為修改.
w01 = wife()
w01.name = 「麗麗」
w01.name = 「莉莉」
(2) 通常在建構函式(init)中建立。 專案中用這種
w01 = wife(「麗麗」,24)
print(w01.name)
(3) 每個物件儲存乙份(每個物件都有自己的資料),通過物件位址訪問。
作用:描述所有物件的共有資料。
dict:物件的屬性,用於儲存自身例項變數的字典。
w01 = wife(「麗麗」,24)
print(w01.dict)---->
語法(1) 定義:
def 方法名稱(self, 引數列表):
方法體(2) 呼叫: 物件位址.例項方法名(引數列表)(物件名.方法())
不建議通過類名訪問例項方法(類名.方法(物件名))
說明(1) 至少有乙個形參,第乙個引數繫結呼叫這個方法的物件,一般命名為"self"。
(2) 無論建立多少物件,方法只有乙份,並且被所有物件共享。
作用:表示物件行為。
語法(1) 定義:在類中,方法外定義變數。
class 類名:
變數名 = 表示式
(2) 呼叫:類名.變數名
不建議通過物件訪問類變數
說明– 儲存在類中。記憶體中存在於方法區
– 只有乙份,被所有物件共享。
作用:描述所有物件的共有資料。
語法(1) 定義:
@classmethod
def 方法名稱(cls,引數列表):
方法體(2) 呼叫:類名.方法名(引數列表)
不建議通過物件訪問類方法
說明– 至少有乙個形參,第乙個形參用於繫結類,一般命名為』cls』
– 使用@classmethod修飾的目的是呼叫類方法時可以隱式傳遞類。(隱式:自動的意思。使用@classmethod是為了呼叫類方法時不傳遞例項進去,否則呼叫類方法會傳遞某個物件的位址進去)
– 類方法中不能訪問例項成員,例項方法中可以訪問類成員。
作用:操作類變數。
物件導向基礎
什麼是物件導向程式設計?就是把萬事萬物都抽象成為物件,一切都是物件!什麼是抽象?抽象是從眾多的事物中抽取出共同的 本質性的特徵,而捨棄其非本質的特徵。例如蘋果 香蕉 生梨 桃子等,它們共同的特性就是水果。得出水果概念的過程,就是乙個抽象的過程。要抽象,就必須進行比較,沒有比較就無法找到在本質上共同的...
物件導向基礎
我想在這個園子裡面的新人,還是 掌門人 都對 物件導向 這幾字非常的耳熟了或者有一定的了解。但當乙個初學都在學習物件導向的時候,會遇到一些瓶頸和麻煩,認為物件導向非常的難以理解。那麼本章節主要是讓大家了解物件導向,並系統地掌握物件導向程式設計的技能點,消除初學者的疑惑.1 如何去學習物件導向的程式設...
物件導向基礎
uml是一種標準的圖形化建模語言,是物件導向分析與設計的一種標準表示 類圖是用來描述類以及類與類之間關係的一種uml圖 類圖描述的關係包括關聯,範化,依賴,實現等 只要類與類之間存在關聯關係就可以用普通關聯來表示 比如 描述人和計算之間的關係 帶 的一端表示關聯的發起方,箭頭表示關聯的方向 0.1 ...