物件導向程式設計基礎
面向物件程式設計(Object-Oriented Programming,簡稱 OOP)是一種程式設計範式,強調將程式組織成由物件構成的模組。每個物件都包含了資料和操作資料的方法。OOP 的核心理念是透過模擬現實世界中的物件來解決問題,並且讓程式碼更具組織性、可讀性和可維護性。
OOP 有四大核心概念:封裝(Encapsulation)、繼承(Inheritance)、多型(Polymorphism)和抽象(Abstraction)。
以下是 OOP 的基礎概念——類和物件的簡單介紹。
定義類(Class)
在Python中可以使用class
關鍵字定義類,然後在類中透過函式來定義方法,這樣就可以將物件的動態特徵描述出來。
例如,"車子"可以是一個類,其中包含屬性如顏色、品牌、速度等,還包含方法如加速、煞車等行為。
定義物件(Object)
物件是根據類創建的具體實例,是類的具體化。物件擁有類定義的屬性和方法,是實際存在的個體。例如,"一台紅色的 Toyota 車子"就是 "車子" 類的物件。
類與物件的封裝(Encapsulation)練習
封裝指的是將資料(屬性)和行為(方法)組合到一個單獨的單位中,並讓它們能夠相互操作。此處 Car
類中,color
和 brand
這兩個屬性以及 start
方法都被封裝在一起,使得每個 Car
物件都包含自己的資料與行為。
'''
Version: Day08
Author: SQA yang
面向物件程式設計
(Object-Oriented Programming,簡稱 OOP)
'''
# 定義一個Car的類class
class Car:
def __init__(self, color, brand):
self.color = color
self.brand = brand
def start(self):
print(f"{self.brand} car is starting.")
my_car = Car("Red", "Toyota") # 創建一個Car類的物件
# 使用物件屬性和方法
print(my_car.color) # 輸出: Red
print(my_car.brand) # 輸出: Toyota
my_car.start() # 輸出: Toyota car is starting.
類與物件的封裝、抽象、繼承、多型練習
'''
Version: Day08
Author: SQA yang
面向物件程式設計(Object-Oriented Programming,簡稱 OOP)
'''
from abc import ABC, abstractmethod
# 抽象基類 Vehicle,代表所有車輛的抽象類
class Vehicle(ABC):
def __init__(self, color, brand):
self.color = color
self.brand = brand
@abstractmethod
def start(self):
"""抽象方法,必須由子類別實作具體功能"""
pass
# Car 類,繼承自 Vehicle 類,並實現 start 方法
class Car(Vehicle):
def start(self):
print(f"{self.brand} car is starting with a soft engine sound.")
# Truck 類,繼承自 Vehicle 類,並實現自己的 start 方法
class Truck(Vehicle):
def start(self):
print(f"{self.brand} truck is starting with a heavy engine sound.")
# 創建不同類型的車輛物件
my_car = Car("Red", "Toyota")
my_truck = Truck("Blue", "Ford")
# 使用多型,呼叫 start 方法
my_car.start() # 輸出: Toyota car is starting with a soft engine sound.
my_truck.start() # 輸出: Ford truck is starting with a heavy engine sound.
以上為Python100天從新手到大師的Day08學習筆記。