學物件導向新手村
還在被物件導向搞得頭昏腦脹嗎?🤯
「什麼是類別?什麼是物件?」
別擔心!這篇我想用最直覺的方式,來幫助你理解物件導向程式設計(Object-Oriented Programming,簡稱OOP) 的核心概念,把 OOP 變成一款「狗狗冒險遊戲」🎮,讓你輕鬆搞懂類別、物件、繼承、封裝、多型。準備好跟我一起進入「狗狗冒險遊戲」了嗎?
為什麼要用 OOP?
想像你要管理上萬「狗狗」角色…
❌ 不用 OOP 的災難
每隻狗狗都要各自定義變數與函式,程式碼超難維護。
1 | # 記住每隻狗狗的所有資料 |
⭕ 用 OOP 的好處
只需要寫一次「狗狗角色模板」,就能生出無數角色。
1 | # 只需要統一寫一次狗狗角色模板 |
什麼是類別?
類別(Class)就是狗狗角色模板。
想像你正在設計一款「狗狗冒險遊戲」,正在定義「狗狗」這個角色,而你會怎麼定義?
有哪些基礎屬性?
→ 屬性(Attributes)
→ 等級、血量、攻擊力、防禦力
能做哪些動作?
→ 方法(Methods)
→ 攻擊、升級、使用技能
角色的初始設定?
→ 建構子(Constructor)
→ 等級 1、血量 100、基礎裝備
1 | class Dog: |
什麼是建構子?
建構子(Constructor)就是設定角色初始能力值。
1 | class Dog: |
什麼是物件?
物件(Object)就是玩家的狗狗角色。
當狗狗角色模板設計完成後,玩家就可以根據狗狗角色模板,實際創建自己在遊戲中的狗狗角色!比如其中一隻叫做 Husky,而它有自己的等級、血量和經驗值等。
1 | # 根據Dog類別創造具體的狗狗物件 |
簡單記憶法
狗狗初始能力值 = 建構子(Constructor)
玩家的狗狗角色 = 物件(Object)
-
類別(Class)
- 狗狗角色模板
- 定義狗狗角色「有」哪些屬性和技能
- 只是設計藍圖,不是真的角色
-
建構子(Constructor)
- 狗狗初始能力值
- 設定狗狗的基礎能力數值
-
物件(Object)
- 玩家的狗狗角色
- 根據角色模板所建立的實際玩家的角色
- 每隻狗都有獨立的屬性與技能特色
進階概念預告
掌握了類別和物件後,下篇會繼續解鎖以下概念:
- 繼承(Inheritance) → 哈士奇、黃金獵犬如何繼承狗狗的基礎能力?
- 封裝(Encapsulation) → 如何防止別人亂改狗狗的屬性?
- 多型(Polymorphism) → 每隻狗狗叫聲都不一樣?