繼續我們的 Java 學習之旅,第二季首章將聚焦於物件導向程式設計(OOP)的基石——類與對象。這不僅是 Java 語法的核心,更是建構大型企業級應用的基礎架構思維。
在現實世界中,我們用「圖紙」蓋房子,用「模具」鑄造零件。在 Java 裡,類就是那張圖紙、那套模具。它定義了一類事物共同擁有的屬性(資料/狀態)與行為(方法/功能)。
public class Car {
// 屬性
String brand;
String color;
double speed;
// 行為
public void accelerate() { speed += 10; }
public void brake() { speed = 0; }
}
以上程式碼定義了一個 `Car` 類,擁有品牌、顏色、速度三個屬性,以及加速、煞車兩個行為。注意:類本身佔用記憶體極小,它只是一個邏輯定義。
有了圖紙,我們才能蓋出真正的房子。對象是類在記憶體中實際創建出來的實體,擁有唯一的身份標識、具體的屬性值,並能響應方法調用。
public class Main {
public static void main(String[] args) {
// 實例化:使用 new 關鍵字在堆內存中創建對象
Car myCar = new Car();
myCar.brand = "Tesla";
myCar.color = "Red";
Car yourCar = new Car(); // 另一個獨立的對象
yourCar.brand = "BMW";
myCar.accelerate(); // 調用方法改變狀態
System.out.println(myCar.speed); // 輸出 10.0
}
}
此處 `myCar` 和 `yourCar` 是 `Car` 類的兩個獨立實例,互不干擾,各自維護自己的狀態。
構造器是一種特殊的方法,名稱與類名相同,無返回值類型。它在 `new` 關鍵字創建對象時自動被調用,用於完成對象的初始化工作(如賦予初始屬性值)。
public class Car {
String brand;
// 無參構造器
public Car() { this.brand = "Unknown"; }
// 帶參構造器(重載)
public Car(String brand) { this.brand = brand; }
}
良好的構造器設計能保證對象一出生就處於「合法、完整」的狀態,避免後續因屬性未初始化導致的空指針異常。
理解引用類型變量在棧內存中存儲地址,實際對象在堆內存中分配空間,是掌握 Java 參數傳遞、垃圾回收機制的前提。圖解請參考後續章節。
掌握類與對象,便掌握了 Java 物件導向的大門鑰匙。下一章我們將深入探討封裝、繼承、多態三大特性,敬請期待!