貳、請舉例詳述類別(class)與物件(object)的意義,以及物件導向程式設計之優點為何(含 abstraction、 encapsulation、inheritance、polymorphism)?
詳解 (共 2 筆)
詳解
類別(class):類似物件的設計圖、範本,用來定義物件形成時的樣子,本身沒有實體
物件(object):由屬性(attributes)和方法(method)構成,有實體概念的東西,例如在現實生活中人、鳥、車子都可以稱為物件
以銀行帳戶為例
每個銀行帳號都有存款,並且可以存錢、領錢和查詢
帳號是物件
存款是屬性
存錢、領錢和查詢是方法
符合class規劃的物件、屬性作出來的就是物件
儘管屬性和方法都一樣但不同帳號就是不同物件
abstraction(抽象)
抽象類別可以實作屬性,亦可先宣告屬性再讓子類來實作或覆寫。
encapsulation(封裝)
可以將程式碼包裝,讓其他使用者可以利用他,但不能對其做更動,確保安全。
inheritance(繼承)
讓子類別可以使用父類別允許的方法,讓程式撰寫更有效率、使程式更容易做修改
polymorphism(多型)
不同資料類型的實體提供統一的介面。
詳解
在物件導向程式設計(Object-Oriented Programming, OOP)中:
類別(Class):
是一種藍圖或模板,它定義了一組具有共同屬性和方法的對象應該具備的特徵。類別指定了物件的結構(數據成員)和行為(成員函數或方法)。
舉例:可以將類別比作汽車的設計圖紙,設計圖紙上標明了汽車將具有的特徵,如輪子、引擎、座椅,以及功能,如加速、轉向、剎車等。
物件(Object):
舉例:可以將類別比作汽車的設計圖紙,設計圖紙上標明了汽車將具有的特徵,如輪子、引擎、座椅,以及功能,如加速、轉向、剎車等。
物件(Object):
是根據類別藍圖創建的實例。每個物件都包含類別定義的數據和行為,並具有狀態(屬性的當前值)和行為(方法的操作)。
舉例:一個特定的汽車,如你的私家車,它是根據設計圖紙實際製造出來的,具有藍圖定義的所有特徵和功能,但它還擁有自己的特定屬性,如顏色、引擎號碼等。
物件導向程式設計的優點及其核心概念:
舉例:一個特定的汽車,如你的私家車,它是根據設計圖紙實際製造出來的,具有藍圖定義的所有特徵和功能,但它還擁有自己的特定屬性,如顏色、引擎號碼等。
物件導向程式設計的優點及其核心概念:
抽象化(Abstraction):
抽象化是將複雜現實世界中的實體簡化為類別。
優點:使開發者能夠專注於實體的關鍵特性,忽略不相關的細節。
封裝(Encapsulation):
優點:使開發者能夠專注於實體的關鍵特性,忽略不相關的細節。
封裝(Encapsulation):
封裝是將數據(屬性)和操作數據的方法(函數)包裹在一起,形成一個對象,從而隱藏內部的細節。
優點:保護對象內部狀態,防止外界直接訪問,減少因外部隨意存取對象內部而產生的錯誤。
繼承(Inheritance):
優點:保護對象內部狀態,防止外界直接訪問,減少因外部隨意存取對象內部而產生的錯誤。
繼承(Inheritance):
繼承允許一個類別(子類別)獲得另一個類別(父類別)的屬性和方法。
優點:促進了代碼的重用,減少重複編寫代碼,並且能夠建立一個層次化的類別結構。
多態性(Polymorphism):
優點:促進了代碼的重用,減少重複編寫代碼,並且能夠建立一個層次化的類別結構。
多態性(Polymorphism):
多態性是指允許不同類別的對象對同一消息做出響應的能力,即同一操作作用於不同的類別對象上可以產生不同的行為。
優點:增加了程式碼的靈活性和擴展性,通過接口的形式可以在不同情境中使用不同的實現,這使得修改和擴展程式更加容易。
優點:增加了程式碼的靈活性和擴展性,通過接口的形式可以在不同情境中使用不同的實現,這使得修改和擴展程式更加容易。