python面向物件學習(一)基本概念
阿新 • • 發佈:2018-11-11
目錄
面向物件程式設計 —— Object Oriented Programming
簡寫 OOP
是面向物件程式設計語言中的一個很重要的思想,python
中的一切皆為物件,接下來過一下這些概念。
1. 面向物件基本概念
- 我們之前所學習的就是面向過程的
- 面相過程 和 面相物件,是兩種不同的 程式設計方式
- 對比 面向過程 的特點,可以更好地瞭解什麼是 面向物件
1.1 過程和函式
- 過程 是早期的一個程式設計概念
- 過程 類似於函式,只能執行,但是沒有返回值
- 函式 不僅能執行,還可以返回結果
1.2 面相過程 和 面相物件 基本概念
1) 面相過程 —— 怎麼做?
- 把完成某一個需求的
所有步驟
從頭到尾
逐步實現 - 根據開發需求,將某些 功能獨立 的程式碼 封裝 成一個又一個 函式
- 最後完成的程式碼,就是順序地呼叫 不同的函式
特點
- 注重 步驟與過程
- 如果需求複雜,程式碼會變得很複雜
- 開發複雜專案,沒有固定的套路,開發難度很大!
2) 面向物件 —— 誰來做?
相比較函式,面向物件 是 更大 的 封裝,根據 職責 在 一個物件中 封裝 多個方法
- 在完成某一個需求前,首先確定 職責 —— 要做的事情(方法)
- 根據 職責 確定不同的 物件,在 物件 內部封裝不同的 方法(多個)
- 最後完成的程式碼,就是順序地讓 不同的物件 呼叫 不同的方法
特點
- 注重 物件和職責,不同的物件承擔不同的職責
- 更加適合應對複雜的需求變化,是專門應對複雜專案開發,提供的固定套路
- 需要在面向過程基礎上,再學習一些面向物件的語法
2. 類和物件的概念
類 和 物件 是 面向物件程式設計的 兩個 核心概念
1.1 類
- 類 是對一群具有 相同 特徵 或者 行為 的事物的一個統稱,是抽象的,不能直接使用
- 特徵 被稱為 屬性
- 行為 被稱為 方法
- 類 就相當於製造飛機時的圖紙,是一個 模板,是 負責建立物件的
1.3 物件
- 物件 是 由類創建出來的一個具體存在,可以直接使用
- 由 哪一個類 創建出來的 物件,就擁有在 哪一個類 中定義的:
- 屬性
- 方法
- 物件 就相當於用 圖紙 製造 的飛機
在程式開發中,應該 先有類,再有物件
3. 類和物件的關係
- 類是模板,物件 是根據 類 這個模板創建出來的,應該 先有類,再有物件
- 類 只有一個,而 物件 可以有很多個
- 不同的物件 之間 屬性 可能會各不相同
- 類 中定義了什麼 屬性和方法,物件 中就有什麼屬性和方法,不可能多,也不可能少
4. 類的設計
在使用面相物件開發前,應該首先分析需求,確定一下,程式中需要包含哪些類!
在程式開發中,要設計一個類,通常需要滿足一下三個要素:
- 類名 這類事物的名字,滿足大駝峰命名法
- 屬性 這類事物具有什麼樣的特徵
- 方法 這類事物具有什麼樣的行為
大駝峰命名法
CapWords
- 每一個單詞的首字母大寫
- 單詞與單詞之間沒有下劃線
- 例如,如果有一個人類,則應當命名為:
Person
4.1 類名的確定
名詞提煉法 分析 整個業務流程,出現的 名詞,通常就是找到的類
4.2 屬性和方法的確定
- 對 物件的特徵描述,通常可以定義成 屬性
- 物件具有的行為(動詞),通常可以定義成 方法
提示:需求中沒有涉及的屬性或者方法在設計類時,不需要考慮
練習 1
需求
- 小張今年22歲,喜歡每天早上跑著步,唱著歌
- 小西今年24歲,不喜歡唱歌,喜歡跑步
5. 總結
本次學習,比較了面向過程
和面向物件
的區別,以便更好的理解面向物件
。類
是建立物件
的一個模板
,有了類,就能根據這個模板創建出具體特徵和行為的物件。