1、成員變量和局部變量的區別:
1. 在類中的位置不一樣
a. 成員變量:在類中方法外
b. 局部變量:在方法定義中或者方法聲明上
2. 在內存中的位置不一樣
a. 成員變量:在堆內存(成員變量屬於對象,對象進堆內存)
b. 局部變量:在棧內存(局部變量屬於方法,方法進棧內存)
※ 因爲內存中的位置不一樣,因此成員變量和局部變量能夠重名。
3. 生命週期不一樣:
a. 成員變量:隨着對象的建立而存在,隨着對象的消失而消失
b. 局部變量:對着方法的調用而存在,對着方法的調用完畢而消失
4. 初始化值不一樣:
a. 成員變量:有默認初始化值
b. 局部變量:沒有默認初始化值,必須定義、賦值,而後才能使用。
注意事項:
• 局部變量名稱能夠和成員變量名稱同樣,在方法中使用的時候,採用的是就近原則。
• 基本數據類型變量包括:byte/short/int/long/float/double/boolean/char
• 引用數據類型變量包括:數組、類、接口、枚舉。數組
2、匿名對象的概述和應用
1. 匿名對象:沒有名字的對象
2. 匿名對象的應用場景:
a. 調用方法,僅僅只調用一次的時候
i. 這樣作的好處是爲了節省代碼
※ 注意:調用屢次的時候不合適,匿名對象調用完畢就變成垃圾,能夠被垃圾回收器不定時回收。
b. 匿名對象能夠做爲實際參數傳遞。eg:method(new car());
匿名對象能夠調用屬性,可是調用完後沒有任何對象指向它,因此沒有任何意義。安全
3、封裝
1. 封裝:是指隱藏對象的屬性和實現細節,僅對外提供公共的訪問方式。
2. 封裝的好處:
a. 隱藏實現細節,提供公共的訪問方式。
b. 提升代碼的複用性
c. 提升安全性
3. 封裝的原則:
a. 將不須要對外提供的內容都隱藏起來。
b. 把屬性隱藏,提供公共的方法對其訪問。對象