1. 面向?qū)ο笏枷?/h2>
面向過程思想:就是把關(guān)注點放在一件事或一個活動中涉及到的步驟(也就是過程)上的思想(或思維方式)
面向?qū)ο笏枷耄壕褪前殃P(guān)注點放在一件事或一個活動中涉及到的人或事物(也就是對象)上的思想(或思維方式)
面向?qū)ο笏枷氲奶攸c:
- 一種更符合人們思考習慣的思想
- 把復(fù)雜的事物簡單化
- 把人們從執(zhí)行者變成了指揮者
面向?qū)ο蟮某绦蜷_發(fā)就是不斷的找對象亡笑、使用對象仑乌、指揮對象做事情的過程
面向?qū)ο蟮乃枷胩卣鳎悍庋b、繼承衙传、多態(tài)
2. 類的定義和使用
2.1 如何定義一個類
自定義類對象作為參數(shù)蓖捶,屬于引用傳遞俊鱼,傳遞的是地址值
2.2 使用變量的規(guī)則
第一步:TestStudent這個類的字節(jié)文件加載到方法區(qū)
第二步:main方法進棧畅买,并從第一行代碼開始執(zhí)行
第三步:第一行使用Student類創(chuàng)建對象谷羞,但內(nèi)存中沒有Student類,所以要把Student類的字節(jié)文件加載到方法區(qū)购公,然后在棧里創(chuàng)建一個Student類的引用stu雁歌,new會向堆內(nèi)存申請開辟空間,這塊空間來存儲Student類的成員變量和成員方法比庄,并有默認值
第四步:執(zhí)行main方法的第2和第3行佳窑,給成員變量賦值父能,執(zhí)行第4行時,調(diào)用study方法溉委,所以study方法進棧爱榕。
2.3 局部變量與成員變量
成員變量的位置:類中黔酥、方法外
局部變量的位置:方法的參數(shù)列表 或 方法內(nèi)
Java中使用變量,采用就近原則熄求,如果局部變量位置有岖寞,就使用;沒有就去本類的成員位置找指巡,有就使用藻雪;沒有就去父類的成員位置找狸吞,沒有就報錯
3. 封裝
封裝的好處:提高安全性蹋偏、提高復(fù)用性、復(fù)雜的事情簡單化
3.1 private關(guān)鍵字
private:是一種訪問權(quán)限修飾符,用來修飾類的成員
特點:被他修飾的成員只能在本類中訪問
private一般用來修飾成員變量黎棠,public一般用來修飾成員方法
3.2 this關(guān)鍵字
表示對本類對象的引用
4. 構(gòu)造方法
構(gòu)造方法的定義:
格式
修飾符 構(gòu)造方法名(參數(shù)列表) {
// 方法體
}
要求
方法名必須與類名相同
沒有返回值(可以有return)
沒有返回值類型(void也不行)
注意事項
若未提供任何構(gòu)造方法脓斩,系統(tǒng)會給出默認的無參構(gòu)造
若已經(jīng)提供任何構(gòu)造方法随静,系統(tǒng)不再提供無參構(gòu)造
構(gòu)造方法可以重載
public class Phone {
// 構(gòu)造方法
// 無參構(gòu)造
public Phone () {}
// 有參構(gòu)造
public Phone(String brand, String name) {
this.brand = brand;
this.name = name;
}
// 定義成員變量
private String brand;
private String name;
// 成員方法
public void call(String name) {
System.out.println("給" + name + "打電話");
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getBrand() {
return brand;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class TestPhone {
// main方法是程序的主入口
public static void main(String[] args) {
Phone p = new Phone();
// 給成員變量賦值
p.setBrand("蘋果");
p.setName("程序猿");
System.out.println(p.getBrand());
System.out.println(p.getName());
// 調(diào)用成員方法
p.call("喬布斯");
System.out.println("--------------------");
Phone p2 = new Phone("華為", "小明");
System.out.println(p2.getBrand());
System.out.println(p2.getName());
}
}