在物件導向程式設計(OOP)中,我們尋求在程式中表示現實世界的元素。為此,我們從物件中抽像出其特徵(它們擁有什麼)和它們的行為(它們做什麼),並將這些想法轉化為類別和物件。透過這種方式,我們可以封裝特定類型物件的狀態和行為,方便在程式碼中維護和重複使用。
例如,假設我們想在程式中代表一支筆。它的特點是什麼?他們的行為會是什麼?然後讓我們如下設計筆:
為了將這種抽象轉換為程式碼,我們創建了一個類別,它充當建立筆的特徵和行為的「模具」或「專案」。該類別定義了該類型的每個物件將具有的內容(例如屬性)和能夠執行的操作(例如方法)。因此,類別充當抽象表示,而物件是該類別的具體/真實實例。
當我們從類別建立物件時,它就成為單一實例,並為其實例變數分配了特定值。因此,根據 Paul Deitel 和 Harvey Deitel(2017 年,第 56 頁)的說法:「您開發的每個新類別都會成為可用於宣告變數和描述物件的新類型」。換句話說,可以創建相同類型(從同一類創建)的不同對象,例如“鋼筆”,並且可以共享相同的行為,但每個對象的屬性值都不同,使它們獨一無二。例如,建立 Pen A 時:
考慮到這些定義,在設計類別時,必須反思物件對自身的了解以及它的作用(BATES,Bert;SIERRA,Kathy,2005)。它對自身的了解我們稱之為實例變數(狀態),而它所做的就是它的方法(行為)。類別總結了物件必須具有的結構和行為。當從類別建立物件時,它將使用類別中描述的相同一般特徵來構造,代表抽象概念的具體實例。然而,每個物件都會有自己的屬性值,反映其獨特的特徵。
透過將類別理解為建構物件的抽象“模板”,它實際上成為基礎,而物件則是該模型的具體化。換句話說,類別首先誕生並將其自身建立為一種物件類型。如果沒有類別存在,就不可能建立對象,因為類別為其創建提供了必要的結構。因此,類別代表起點,而物件是將這個項目具體化為程式中真實可用的實例。
現在,我們可以將類別和物件的概念直接應用到程式碼中,並透過一個實際範例來說明如何在物件導向程式設計中對汽車進行建模。
首先,我們必須問自己:我們對汽車了解多少?每輛車都有什麼?它有門,使用酒精、汽油或其他燃料,可以自動或手動,有型號、顏色和載客量。這些特徵代表了汽車的狀態,也就是定義它的屬性。
他能做什麼?它可以加速、煞車、啟動、停止、鳴喇叭、打開車門或啟動前燈。這些動作代表汽車的行為,即描述汽車能夠執行的操作的方法。
下面,我們將 Car 實作為一個類別 (Car),結合了它的屬性和方法。遵循良好的做法,我們將所有程式碼改為英文:
public class Car { private String model; private String color; private String fuelType; private int passengerCapacity; public Car(String model, String color, String fuelType, int passengerCapacity) { this.model = model; this.color = color; this.fuelType = fuelType; this.passengerCapacity = passengerCapacity; } public void accelerate() { System.out.println("The car is accelerating."); } public void brake() { System.out.println("The car is braking."); } public void start() { System.out.println("The car is started."); } public void stop() { System.out.println("The car is stopped."); } public void honk() { System.out.println("The car is honking."); } public void displayDetails() { System.out.println("Model: " + model); System.out.println("Color: " + color); System.out.println("Fuel Type: " + fuelType); System.out.println("Passenger Capacity: " + passengerCapacity); } }
現在,讓我們從 Car 類別創建一個 Car 對象,以便在我們的程式碼中使用它,從而演示該類別作為構建對象的模型的功能以及從該模型創建的真實版本的對象。 >
public class Main { public static void main(String[] args) { Car carA = new Car("Fusca", "Blue", "Gasoline", 4); carA.displayDetails(); carA.start(); carA.accelerate(); carA.honk(); carA.brake(); carA.stop(); } }
現在您已經了解了類別和物件的工作原理,您還可以在程式碼中表示哪些其他物件?對於已經擁有豐富經驗的人:您在專案中創建的最具創意或最具挑戰性的課程是什麼?
來源:
DEITEL,保羅;迪特爾,哈維。Java:如何程式設計。聖保羅:皮爾遜
巴西教育,2017 年。
用你的頭腦! Java。第二版。裡約熱內盧:Editora Alta Books,2005 年。
以上是「我釣魚了,Java!」:類別與物件焦點:從抽像到現實的詳細內容。更多資訊請關注PHP中文網其他相關文章!