1. 程式人生 > >python面向物件學習(一)基本概念

python面向物件學習(一)基本概念

目錄

面向物件程式設計 —— Object Oriented Programming 簡寫 OOP 是面向物件程式設計語言中的一個很重要的思想,python中的一切皆為物件,接下來過一下這些概念。

1. 面向物件基本概念

  • 我們之前所學習的就是面向過程
  • 面相過程面相物件,是兩種不同的 程式設計方式
  • 對比 面向過程 的特點,可以更好地瞭解什麼是 面向物件

1.1 過程和函式

  • 過程 是早期的一個程式設計概念
  • 過程 類似於函式,只能執行,但是沒有返回值
  • 函式 不僅能執行,還可以返回結果

1.2 面相過程 和 面相物件 基本概念

1) 面相過程 —— 怎麼做

  1. 把完成某一個需求的 所有步驟 從頭到尾 逐步實現
  2. 根據開發需求,將某些 功能獨立 的程式碼 封裝 成一個又一個 函式
  3. 最後完成的程式碼,就是順序地呼叫 不同的函式

特點

  1. 注重 步驟與過程
    ,不注重職責分工
  2. 如果需求複雜,程式碼會變得很複雜
  3. 開發複雜專案,沒有固定的套路,開發難度很大!

2) 面向物件 —— 誰來做

相比較函式,面向物件更大封裝,根據 職責一個物件中 封裝 多個方法

  1. 在完成某一個需求前,首先確定 職責 —— 要做的事情(方法)
  2. 根據 職責 確定不同的 物件,在 物件 內部封裝不同的 方法(多個)
  3. 最後完成的程式碼,就是順序地讓 不同的物件 呼叫 不同的方法

特點

  1. 注重 物件和職責,不同的物件承擔不同的職責
  2. 更加適合應對複雜的需求變化,是專門應對複雜專案開發,提供的固定套路
  3. 需要在面向過程基礎上,再學習一些面向物件的語法

2. 類和物件的概念

物件面向物件程式設計的 兩個 核心概念

1.1 類

  • 是對一群具有 相同 特徵 或者 行為 的事物的一個統稱,是抽象的,不能直接使用
    • 特徵 被稱為 屬性
    • 行為 被稱為 方法
  • 就相當於製造飛機時的圖紙,是一個 模板,是 負責建立物件的

1.3 物件

  • 物件由類創建出來的一個具體存在,可以直接使用
  • 哪一個類 創建出來的 物件,就擁有在 哪一個類 中定義的:
    • 屬性
    • 方法
  • 物件 就相當於用 圖紙 製造 的飛機

在程式開發中,應該 先有類,再有物件

3. 類和物件的關係

  • 類是模板物件 是根據 這個模板創建出來的,應該 先有類,再有物件
  • 只有一個,而 物件 可以有很多個
    • 不同的物件 之間 屬性 可能會各不相同
  • 中定義了什麼 屬性和方法物件 中就有什麼屬性和方法,不可能多,也不可能少

4. 類的設計

在使用面相物件開發前,應該首先分析需求,確定一下,程式中需要包含哪些類!

在程式開發中,要設計一個類,通常需要滿足一下三個要素:

  • 類名 這類事物的名字,滿足大駝峰命名法
  • 屬性 這類事物具有什麼樣的特徵
  • 方法 這類事物具有什麼樣的行為

大駝峰命名法

CapWords

  1. 每一個單詞的首字母大寫
  2. 單詞與單詞之間沒有下劃線
  3. 例如,如果有一個人類,則應當命名為:Person

4.1 類名的確定

名詞提煉法 分析 整個業務流程,出現的 名詞,通常就是找到的類

4.2 屬性和方法的確定

  • 物件的特徵描述,通常可以定義成 屬性
  • 物件具有的行為(動詞),通常可以定義成 方法

提示:需求中沒有涉及的屬性或者方法在設計類時,不需要考慮

練習 1

需求

  1. 小張今年22歲,喜歡每天早上著步,著歌
  2. 小西今年24歲,不喜歡歌,喜歡跑步

5. 總結

本次學習,比較了面向過程面向物件的區別,以便更好的理解面向物件是建立物件的一個模板,有了類,就能根據這個模板創建出具體特徵和行為的物件。