物件導向程式設計 (OOP) 是 Java 中的一個基本概念,它使創建模組化、可重複使用和可擴展的程式碼變得更加容易。在這篇文章中,我們將探討 OOP 的核心原則,例如類別、物件、繼承、封裝、多態性和抽象。
OOP 是一種基於「物件」概念的程式設計範例,它可以包含資料和操作該資料的方法。透過將程式碼組織成對象,您可以建立更易於管理且更易於理解的程式。
OOP 的四個關鍵原則是:
讓我們在 Java 的脈絡中探索每個概念。
2.1 什麼是類別?
Java中的類別是建立物件的藍圖。它定義了從類別建立的物件將具有的屬性(欄位)和行為(方法)。將類別視為概述物件的結構和功能的範本。
班級範例:
在這個例子中,Car類別有3個欄位:mark、model、year,以及一個方法startEngine()。
2.2 什麼是對象?
物件是類別的實例。定義類別後,您可以從中建立多個對象,每個對像都有自己唯一的欄位值。
建立物件的範例:
在此範例中,myCar 是 Car 類別的一個對象,並為其欄位分配了特定值。
挑戰1:
建立一個名為 Book 的類,其中包含標題、作者和頁碼欄位。建立 Book 類別的對象,設定其字段,並列印出書籍的詳細資訊。
封裝是將資料(欄位)和對資料進行操作的方法捆綁到單一單元或類別中,並限制對某些物件組件的存取的做法。這是使用存取修飾符(私有、公有、受保護)來實現的。
封裝有助於保護物件的內部狀態免受意外幹擾和誤用。
封裝範例:
在此範例中,Person 類別透過將其欄位設為私有來封裝其字段,並提供公用方法(getName、setName、getAge、setAge)來存取和修改這些欄位。
挑戰2:
透過將欄位設為私有並為每個欄位建立公用 getter 和 setter 方法,為 Book 類別新增封裝。
繼承是一種允許一個類別繼承另一個類別的屬性和方法的機制。繼承的類別稱為“子類別”或“子類別”,繼承的類別稱為“超類別”或“父類別”。
繼承提高了程式碼的可重複使用性,並在類別之間建立了自然的層次結構。
繼承範例:
在這個例子中,Dog類別繼承了Animal類別的eat方法,也有自己的方法bark。
挑戰3:
建立一個繼承自 Book 類別的子類別 EBook。新增欄位 fileSize 和方法 download() 到 EBook 類別。
多態允許不同類別的物件被視為公共超類別的物件。可以透過方法重寫和介面來實現。
5.1 方法重寫
方法重寫允許子類別提供其超類別中已定義的方法的特定實作。
多態性範例:
在這個例子中,儘管 myAnimal 是 Animal 類型,但它引用的是 Cat 類型的對象,並且呼叫了 Cat 重寫的 sound 方法。
挑戰4:
重寫 Book 類別中的 toString 方法以傳回書籍詳細資訊的字串表示形式。
抽象涉及隱藏系統複雜的實作細節並僅公開必要的部分。可以使用抽象類別和介面來實作。
6.1 抽象類別
抽象類別無法實例化,並且可能包含必須由子類別實現的抽象方法(沒有主體的方法)。
抽象範例:
在這個例子中,Shape是一個抽象類,有一個抽象方法draw,它是由Circle類別實現的。
挑戰5:
使用抽象方法 powerOn 建立一個抽象類別 Device。建立一個實作 powerOn 方法的 Smartphone 子類別。
在這篇文章中,我們探討了 Java 中物件導向程式設計的關鍵概念:類別、物件、繼承、封裝、多態性和抽象。理解這些原則對於建立複雜且高效的 Java 應用程式至關重要。
請隨意嘗試提供的範例和挑戰。如果您有任何疑問或需要進一步說明,請在下面發表評論!
以上是了解物件導向程式設計 (OOP)的詳細內容。更多資訊請關注PHP中文網其他相關文章!