您現在的位置是:首頁 > 手機遊戲首頁手機遊戲
java 第五章 類和物件(核心)
- 2022-05-01
物件是類的什麼
1。 類和物件
1。1 類和物件的理解【理解】
客觀存在的事物皆為物件 ,所以我們也常常說萬物皆物件。
類
類的理解
類是對現實生活中一類具有共同屬性和行為的事物的抽象
類是物件的資料型別,類是具有相同屬性和行為的一組物件的集合
簡單理解:類就是對現實事物的一種描述
類的組成
屬性:指事物的特徵,例如:手機事物(品牌,價格,尺寸)
行為:指事物能執行的操作,例如:手機事物(打電話,發簡訊)
類和物件的關係
類:類是對現實生活中一類具有共同屬性和行為的事物的抽象
物件:是能夠看得到摸的著的真實存在的實體
簡單理解:
類是對事物的一種描述,物件則為具體存在的事物
1。2 類的定義【應用】
類的組成是由屬性和行為兩部分組成
屬性:在類中透過成員變數來體現(類中方法外的變數)
行為:在類中透過成員方法來體現(和前面的方法相比去掉static關鍵字即可)
類的定義步驟:
①定義類
②編寫類的成員變數
③編寫類的成員方法
public class 類名 {
// 成員變數
變數1的資料型別 變數1;
變數2的資料型別 變數2;
…
// 成員方法
方法1;
方法2;
}
示例程式碼:
/*
手機類:
類名:
手機(Phone)
成員變數:
品牌(brand)
價格(price)
成員方法:
打電話(call)
發簡訊(sendMessage)
*/
public class Phone {
//成員變數
String brand;
int price;
//成員方法
public void call() {
System。out。println(“打電話”);
}
public void sendMessage() {
System。out。println(“發簡訊”);
}
}
1。3 物件的使用【應用】
建立物件的格式:
類名 物件名 = new 類名();
呼叫成員的格式:
物件名。成員變數
物件名。成員方法();
示例程式碼
/*
建立物件
格式:類名 物件名 = new 類名();
範例:Phone p = new Phone();
使用物件
1:使用成員變數
格式:物件名。變數名
範例:p。brand
2:使用成員方法
格式:物件名。方法名()
範例:p。call()
*/
public class PhoneDemo {
public static void main(String[] args) {
//建立物件
Phone p = new Phone();
//使用成員變數
System。out。println(p。brand);
System。out。println(p。price);
p。brand = “小米”;
p。price = 2999;
System。out。println(p。brand);
System。out。println(p。price);
//使用成員方法
p。call();
p。sendMessage();
}
}
1。4 學生物件-練習【應用】
需求:首先定義一個學生類,然後定義一個學生測試類,在學生測試類中透過物件完成成員變數和成員方法的使用
分析:
成員變數:姓名,年齡…
成員方法:學習,做作業…
示例程式碼:
class Student {
//成員變數
String name;
int age;
//成員方法
public void study() {
System。out。println(“好好學習,天天向上”);
}
public void doHomework() {
System。out。println(“鍵盤敲爛,月薪過萬”);
}
}
/*
學生測試類
*/
public class StudentDemo {
public static void main(String[] args) {
//建立物件
Student s = new Student();
//使用物件
System。out。println(s。name + “,” + s。age);
s。name = “林青霞”;
s。age = 30;
System。out。println(s。name + “,” + s。age);
s。study();
s。doHomework();
}
}
2。 物件記憶體圖
2。1 單個物件記憶體圖【理解】
成員變數使用過程
成員方法呼叫過程
2。2 多個物件記憶體圖【理解】
成員變數使用過程
成員方法呼叫過程
總結:
多個物件在堆記憶體中,都有不同的記憶體劃分,成員變數儲存在各自的記憶體區域中,成員方法多個物件共用的一份
2。3 多個物件指向相同記憶體圖【理解】
總結
當多個物件的引用指向同一個記憶體空間(變數所記錄的地址值是一樣的)
只要有任何一個物件修改了記憶體中的資料,隨後,無論使用哪一個物件進行資料獲取,都是修改後的資料。
3。 成員變數和區域性變數
3。1 成員變數和區域性變數的區別【理解】
類中位置不同:成員變數(類中方法外)區域性變數(方法內部或方法宣告上)
記憶體中位置不同:成員變數(堆記憶體)區域性變數(棧記憶體)
生命週期不同:成員變數(隨著物件的存在而存在,隨著物件的消失而消失)區域性變數(隨著方法的呼叫而存在,醉著方法的呼叫完畢而消失)
初始化值不同:成員變數(有預設初始化值)區域性變數(沒有預設初始化值,必須先定義,賦值才能使用)