類別

類別 在 Java

12 個練習

關於 類別

Java 中主要的物件導向建構是_類別_,也就是資料(欄位,又稱為實例變數)和行為(方法)的組合。類別的欄位和方法合稱為它的_成員_。

成員的存取權可以透過存取修飾子來控制,最常見的兩種是:

  • public:任何程式碼都能存取這個成員(沒有限制)。
  • private:只有同一個類別裡的程式碼可以存取這個成員。

在 Java 中,如果沒有指定存取修飾子,預設就是_套件可見性_。在這種情況下,成員對定義在同一個套件中的所有類別都可見。

上述把相關的資料和行為聚集在一起,並限制成員的存取權,這樣的做法稱為封裝,是物件導向的核心概念之一。

你可以把類別想成是建立該類別實例的範本。要建立類別的實例(也稱為_物件_),會使用new關鍵字:

class Car {
}

// Create two car instances
Car myCar = new Car();
Car yourCar = new Car();

欄位有型別和名稱(以 camelCase 命名),可以定義在類別中的任何位置(以 PascalCase 命名)。

class Car {
    // Accessible by anyone
    public int weight;

    // Only accessible by code in this class
    private String color;
}

你可以選擇性地為欄位指定初始值。如果欄位_沒有_指定初始值,它會被設為該型別的預設值。實例的欄位值可以使用點記法來存取和更新。

class Car {
    // Will be set to specified value
    public int weight = 2500;

    // Will be set to default value (0)
    public int year;
}

Car newCar = new Car();
newCar.weight; // => 2500
newCar.year;   // => 0

// Update value of the field
newCar.year = 2018;

私有欄位通常是透過呼叫方法所產生的副作用來更新。這類方法通常不會回傳任何值,此時回傳型別應該是 void:

class CarImporter {
    private int carsImported;

    public void importCars(int numberOfCars)
    {
        // Update private field
        carsImported = carsImported + numberOfCars;
    }
}

請注意,在 Java 類別中使用公開欄位並不是慣例。通常會改用私有欄位,並透過取值方法_與_設值方法來存取。

在類別中,this關鍵字會指向目前的類別。如果參數和欄位同名,這尤其有用:

class CarImporter {
    private int carsImported;

    public void setImportedCars(int carsImported)
    {
        // Update private field from public method
        this.carsImported = carsImported;
    }
}
透過 GitHub 編輯 連結會在新視窗或分頁中開啟

學習 類別