Java - 類別屬性
大家好,未來的 Java 魔法師們!今天,我們將踏上Java類別屬性的精彩旅程。如果你是編程新手,別擔心;我會成為你的友好指南,我們將逐步探索這個主題。所以,拿起你的虛擬魔杖(鍵盤),我們一起深入吧!
類別屬性是什麼?
在我們跳進代碼之前,先來了解類別屬性是什麼。想像你在遊戲中創建一個虛擬寵物。你的寵物會有某些特徵,例如名字、年齡和顏色。在 Java 中,這些特徵被稱為類別的屬性或字段。
類別屬性是屬於類別的變量,它定義了從該類別創建的對象的屬性。它們就像是你對象的 DNA,定義了使每個對象獨特的特質。
創建(聲明)Java類別屬性
我們從創建一個簡單的類別來定義我們的虛擬寵物開始:
public class VirtualPet {
String name;
int age;
String color;
}
在這個例子中,我們聲明瞭三個屬性:name
、age
和 color
。這些屬性對於所有從 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";
}
}
類別屬性的最佳實踐
- 封裝:通常來說,將你的屬性設為 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;
}
}
}
- 初始化:始終在聲明時或在構造函數中初始化你的屬性。
public class VirtualPet {
private String name = "Unnamed";
private int age = 0;
public VirtualPet(String name, int age) {
this.name = name;
this.age = age;
}
}
- 使用有意義的名字:選擇清楚地描述它們代表的屬性名稱。
結論
就是這樣,大家!我們已經涵蓋了 Java 類別屬性的基礎。請記住,屬性就像是你對象的特徵。它們可以是 public、private 或 protected,你也可以使用 final
關鍵字將它們設置為唯讀。
在你繼續 Java 的旅程中,你會發現掌握類別屬性對於創建結構良好且可維護的代碼至關重要。繼續練習,你將能夠輕鬆創建複雜的對象!
在我們分手之前,這裡有個笑話來幫助你記住這一課: Java 屬性為什麼感到孤獨?因為它是 private 的,沒有人可以存取它!
編程愉快,願你的屬性始終得到良好的封裝!
Credits: Image by storyset