Java - 類別屬性

大家好,未來的 Java 魔法師們!今天,我們將踏上Java類別屬性的精彩旅程。如果你是編程新手,別擔心;我會成為你的友好指南,我們將逐步探索這個主題。所以,拿起你的虛擬魔杖(鍵盤),我們一起深入吧!

Java - Class Attributes

類別屬性是什麼?

在我們跳進代碼之前,先來了解類別屬性是什麼。想像你在遊戲中創建一個虛擬寵物。你的寵物會有某些特徵,例如名字、年齡和顏色。在 Java 中,這些特徵被稱為類別的屬性或字段。

類別屬性是屬於類別的變量,它定義了從該類別創建的對象的屬性。它們就像是你對象的 DNA,定義了使每個對象獨特的特質。

創建(聲明)Java類別屬性

我們從創建一個簡單的類別來定義我們的虛擬寵物開始:

public class VirtualPet {
String name;
int age;
String color;
}

在這個例子中,我們聲明瞭三個屬性:nameagecolor。這些屬性對於所有從 VirtualPet 類別創建的對象都是可用的。

存取修飾符

你可能已經注意到我們在屬性前沒有使用任何特殊關鍵字。在 Java 中,我們可以使用存取修飾符來控制我們屬性的可見性。讓我們修改我們的類別:

public class VirtualPet {
public String name;
private int age;
protected String color;
}

以下這些修飾符的含義:

  • public:屬性可以從任何其他類別存取。
  • private:屬性只能在同一類別內存取。
  • protected:屬性可以在同一包和子類中存取。

如果我們沒有指定修飾符,則默認為包私有,這意味著它可以在同一包中存取。

存取 Java 類別屬性

現在我們有了我們的屬性,讓我們看看如何存取它們。我們將創建一個 main 方法來演示這一點:

public class VirtualPetDemo {
public static void main(String[] args) {
VirtualPet myPet = new VirtualPet();
myPet.name = "Fluffy";
System.out.println("My pet's name is " + myPet.name);
}
}

當你運行這段代碼時,它會輸出:"My pet's name is Fluffy"

注意我們是如何使用點表示法(myPet.name)來存取 myPet 物件的 name 屬性。

修改 Java 類別屬性

修改屬性就像存取它們一樣容易。讓我們更改我們寵物的名字:

public class VirtualPetDemo {
public static void main(String[] args) {
VirtualPet myPet = new VirtualPet();
myPet.name = "Fluffy";
System.out.println("My pet's name is " + myPet.name);

myPet.name = "Whiskers";
System.out.println("My pet's new name is " + myPet.name);
}
}

這將輸出:

My pet's name is Fluffy
My pet's new name is Whiskers

將 Java 類別屬性設置為唯讀

有時,我們希望阻止屬性在初始設置後被更改。我們可以使用 final 關鍵字來實現這一點:

public class VirtualPet {
public final String species;
public String name;
private int age;
protected String color;

public VirtualPet(String species) {
this.species = species;
}
}

在這個更新的類別中,我們增加了一個 species 屬性,該屬性一旦在構造函數中設置就不能更改。讓我們看看它的作用:

public class VirtualPetDemo {
public static void main(String[] args) {
VirtualPet myPet = new VirtualPet("Cat");
System.out.println("My pet is a " + myPet.species);

// 這會導致編譯錯誤:
// myPet.species = "Dog";
}
}

類別屬性的最佳實踐

  1. 封裝:通常來說,將你的屬性設為 private 並提供 public 方法來存取和修改它們是一個好習慣。這稱為封裝。
public class VirtualPet {
private String name;
private int age;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getAge() {
return age;
}

public void setAge(int age) {
if (age > 0) {
this.age = age;
}
}
}
  1. 初始化:始終在聲明時或在構造函數中初始化你的屬性。
public class VirtualPet {
private String name = "Unnamed";
private int age = 0;

public VirtualPet(String name, int age) {
this.name = name;
this.age = age;
}
}
  1. 使用有意義的名字:選擇清楚地描述它們代表的屬性名稱。

結論

就是這樣,大家!我們已經涵蓋了 Java 類別屬性的基礎。請記住,屬性就像是你對象的特徵。它們可以是 public、private 或 protected,你也可以使用 final 關鍵字將它們設置為唯讀。

在你繼續 Java 的旅程中,你會發現掌握類別屬性對於創建結構良好且可維護的代碼至關重要。繼續練習,你將能夠輕鬆創建複雜的對象!

在我們分手之前,這裡有個笑話來幫助你記住這一課: Java 屬性為什麼感到孤獨?因為它是 private 的,沒有人可以存取它!

編程愉快,願你的屬性始終得到良好的封裝!

Credits: Image by storyset