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:學生對象-練習
- 需求:首先定義一個學生類,然後定義一個學生測試類,在學生測試類中通過對象完成成員變量和成員方法的使用
- 分析:
- 成員變量:姓名,年齡…
- 成員方法:學習,做作業…
- 示例代碼:
public 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:多個對象記憶體圖
- 成員變量使用過程
- 成員方法調用過程
-
總結:
多個對象在堆記憶體中,都有不同的記憶體劃分,成員變量存儲在各自的記憶體區域中,成員方法多個對象共用的一份
3,成員變量和局部變量
3.1:成員變量和局部變量的差別
- 類中位置不同:成員變量(類中方法外)局部變量(方法内部或方法聲明上)
- 記憶體中位置不同:成員變量(堆記憶體)局部變量(棧記憶體)
- 生命周期不同:成員變量(随着對象的存在而存在,随着對象的消失而消失)局部變量(随着方法的調用而存在,醉着方法的調用完畢而消失)
- 初始化值不同:成員變量(有預設初始化值)局部變量(沒有預設初始化值,必須先定義,指派才能使用)