1:成員變量和局部變量的區(qū)別
(1)在類中的位置不同
? ? ? ? ? 成員變量:類中方法外
? ? ? ? ? 局部變量:方法定義中或者方法聲明上
(2)在內(nèi)存中的位置不同
? ? ? ? ? 成員變量:在堆中
? ? ? ? ? 局部變量:在棧中
(3)生命周期不同
? ? ? ? ? ?成員變量:隨著對象的創(chuàng)建而存在,隨著對象的消失而消失。
? ? ? ? ? ?局部變量:隨著方法的調(diào)用而存在,隨著方法的調(diào)用完畢而消失。
(4)初始化值不同
? ? ? ? ? ?成員變量:有默認(rèn)值
? ? ? ? ? ?局部變量;沒有默認(rèn)值,必須定義,賦值,然后才能使用
2:類作為形式參數(shù)的作用
(1)如果你看到一個(gè)方法需要的參數(shù)是一個(gè)類名,就應(yīng)該知道這個(gè)實(shí)際需要的是一具體的對象。
3:匿名對象
(1)沒有名字的對象
(2)應(yīng)用場景
? ? ? ? ? ? ?A:調(diào)用方法,僅僅只調(diào)用一次的時(shí)候。
? ? ? ? ? ? ?B:可以作為實(shí)際參數(shù)傳遞
4:封裝
(1)隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式
(2)好處:
? ? ? ? ? ? ?A:隱藏實(shí)現(xiàn)細(xì)節(jié),提供公共的訪問方式
? ? ? ? ? ? ?B:提高代碼的復(fù)用性
? ? ? ? ? ? ?C:提高代碼的安全性
(3)設(shè)計(jì)原則
? ? ? ? ? ? ?把設(shè)計(jì)細(xì)節(jié)隱藏起來,提供公共的訪問方式
(4)private也是封裝的一種體現(xiàn)
? ? ? ? ? ? ?封裝:類、方法、private修飾成員變量
5:private關(guān)鍵字
(1)私有的意義,可以修飾成員變量和成員方法
(2)特點(diǎn):
? ? ? ? ? ?被private修飾后的成員只能在本類中被訪問
(3)private的應(yīng)用
? ? ? ? ? ?以后寫一個(gè)類的時(shí)候:
? ? ? ? ? ?把所有的成員變量給private了
? ? ? ? ? ? 提供對象的set和get方法
6:this關(guān)鍵字
(1)代表當(dāng)前類的引用對象
? ? ? ? ? ? 記住:那個(gè)對象調(diào)用方法,該方法內(nèi)部的this就代表那個(gè)對象。
(2)this的應(yīng)用場景:
? ? ? ? ? ? ?A:解決了局部變量隱藏成員變量的問題
7:構(gòu)造方法
(1)作用:用于對對象的數(shù)據(jù)進(jìn)行初始化
(2)格式:
? ? ? ? ? ? ? A:方法名和類名相同
? ? ? ? ? ? ? B:沒有返回值類型,連void都不能有
? ? ? ? ? ? ? C:沒有返回值
(3)構(gòu)造方法的注意事項(xiàng)
? ? ? ? ? ? ? A:如果我們沒有寫構(gòu)造方法,系統(tǒng)將提供一個(gè)無參數(shù)的構(gòu)造方法
? ? ? ? ? ? ? B:如果我們給出了構(gòu)造方法,系統(tǒng)將不提供默認(rèn)的構(gòu)造方法
? ? ? ? ? ? ? 如果這個(gè)時(shí)候,我們要使用無參構(gòu)造方法,就必須提供無參的構(gòu)造方法
? ? ? ? ? ? ? 建議:永遠(yuǎn)手動給出無參的構(gòu)造方法
(4)給成員變量賦值的方式
? ? ? ? ? ? ? A:set方法
? ? ? ? ? ? ? B:帶參數(shù)的構(gòu)造方法