什麼是類和對象?¶
在學習Java的對象創建與使用之前,我們先來理解兩個核心概念:類和對象。
類(Class):對象的“模板”¶
想象一下,你要設計一款手機。在設計之前,你會先畫一張“手機設計圖”,上面包含手機的顏色、屏幕尺寸、攝像頭數量等屬性,以及打電話、拍照等功能。這張“設計圖”在Java中就叫類——它是對象的模板,定義了對象應該有什麼屬性和方法。
類的語法格式:
class 類名 {
// 成員變量(屬性):描述對象的特徵
數據類型 屬性1;
數據類型 屬性2;
// 成員方法(行爲):描述對象的動作
void 方法名() {
// 方法體:具體實現動作
}
}
對象(Object):類的“實例”¶
有了設計圖(類),才能生產出具體的手機(對象)。在Java中,對象是根據類創建出來的具體實例,它擁有類定義的屬性和方法,並且可以獨立存儲數據和執行動作。
類比:類是“手機設計圖”,對象是“具體的某部手機”(比如“我的手機”“你的手機”)。
如何定義類並創建對象?¶
我們以一個簡單的“學生”類爲例,一步步演示類的定義和對象的創建。
步驟1:定義一個“學生”類¶
假設我們要定義一個Student類,包含屬性(姓名、年齡)和方法(自我介紹):
// 定義Student類(對象模板)
class Student {
// 成員變量:描述學生的屬性(姓名、年齡)
String name; // 姓名
int age; // 年齡
// 構造方法:用於初始化對象(創建對象時自動調用)
// 構造方法名必須和類名相同,沒有返回值類型
Student(String studentName, int studentAge) {
// this.屬性 = 參數:將參數賦值給對象的屬性
this.name = studentName;
this.age = studentAge;
}
// 成員方法:描述學生的行爲(自我介紹)
void introduce() {
System.out.println("大家好!我叫" + name + ",今年" + age + "歲。");
}
}
步驟2:創建“學生”對象(實例化)¶
類定義好後,需要用new關鍵字根據類創建對象(實例化),語法爲:
類名 對象名 = new 類名(參數列表);
例如,創建一個叫“小明”、18歲的學生對象:
// 創建Student對象(實例化)
Student xiaoming = new Student("小明", 18);
步驟3:訪問對象的成員¶
創建對象後,我們可以通過對象名.成員的方式訪問對象的屬性和方法:
- 訪問屬性:對象名.屬性名
- 調用方法:對象名.方法名()
例如:
// 訪問對象屬性
System.out.println("小明的名字:" + xiaoming.name); // 輸出:小明的名字:小明
System.out.println("小明的年齡:" + xiaoming.age); // 輸出:小明的年齡:18
// 調用對象方法
xiaoming.introduce(); // 輸出:大家好!我叫小明,今年18歲。
多個對象的創建與獨立性¶
一個類可以創建多個對象,每個對象的屬性是獨立的。例如,再創建一個“小紅”對象:
// 創建第二個Student對象
Student xiaohong = new Student("小紅", 19);
// 訪問小紅的屬性和方法
System.out.println("小紅的名字:" + xiaohong.name); // 輸出:小紅的名字:小紅
xiaohong.introduce(); // 輸出:大家好!我叫小紅,今年19歲。
注意事項¶
-
構造方法:
- 構造方法沒有返回值類型(連void都不能寫),且必須和類名完全相同。
- 如果沒有手動定義構造方法,Java會提供一個默認的無參構造方法(類名())。 -
成員變量的默認值:
- 如果沒有初始化成員變量,Java會給它們賦值默認值(如int默認是0,String默認是null)。
- 示例:如果不傳遞年齡,age會默認是0。 -
成員訪問:
- 必須通過對象名訪問成員(不能直接通過類名訪問實例成員)。
總結¶
- 類是對象的模板,定義屬性和方法。
- 對象是類的實例,通過
new關鍵字創建,用於存儲數據和執行方法。 - 成員訪問:通過
對象名.屬性或對象名.方法()操作。
現在,你可以嘗試自己寫一個類(比如“動物”類,包含“叫聲”屬性和“叫”方法),然後創建多個對象,體驗類與對象的關係!