面向對象三大特征封裝
阿新 • • 發佈:2019-03-10
[] 都是 xxx 基本類型 return pri 方法 值類型 ase
什麽是封裝
將屬性隱藏起來,若需要訪問某個屬性,提供公共方法對其訪問。方法,關鍵字private等等都是封裝的一種體現形式。
關鍵字private
- private是權限修飾符,被他修飾的成員變量,只能在本類中訪問。但是超出了本類的範圍之外就不能直接訪問了。
- 我們要操作private修飾的成員變量,就需要定義一對GetXxx和SetXxx方法了。
- 對於GetXxx方法來說,不能有參數,返回值類型和成員變量對應
- 對於SetXxx方法來說,不能有返回值,參數類型和成員變量對應
- 基本類型boolean,獲取值的方法,不能叫GetXxx。應該叫isXxx
this關鍵字的作用:
this代表所在類的當前對象的引用(地址值),即對象自己的引用。誰在調用,this就代表誰
- 調用本類中的成員變量,格式是this.成員變量名
- 調用本類中的成員方法,格式是this.成員方法名
- 調用本類中的其他構造方法,註意:必須在構造方法中使用,而且必須位於構造方法中的第一行。不能和super同時存在
構造方法
當一個對象被創建時候,構造方法用來初始化該對象,給對象的成員變量賦初始值
構造方法定義格式:
修飾符 構造方法名(參數列表){
//方法體
}
註意事項:
- 構造方法名必須和所在的類名,一模一樣
- 構造方法沒有返回值類型,連void 都不能寫
- 自己沒有定義構造方法的時候,系統就會幫我們添加一個。一旦自己定義了構造方法,java自動提供的默認無參數的構造方法就不在添加
- 建議構造方法自己給出,構造方法可以重載
- 構造方法不能return一個具體的返回值
public class PrivateTest { public static void main(String[] args) { /* * 根據 new ClassBase();小括號裏的是否傳遞參數,系統調用相應的構造方法 * 執行無參數構造方法,this(18,true); * 調用本類中參數對應的構造方法,給對象屬性賦予初值。age為18,male 為true * 創建對象,並且把內存地址賦值給c。 * **/ ClassBase c = new ClassBase(); System.out.println(c.GetAge());//獲取age屬性值,結果為18 System.out.println(c.isMale());//獲取name 屬性值結果 true c.run(); } } class ClassBase { // 私有化屬性 private int age; private boolean male; //默認無參數的構造方法 public ClassBase() { // 調用有參數的構造方法 this(18, true); } // 有參數的構造方法 public ClassBase(int age, boolean male) { this.age = age; this.male = male; } // 對外提供訪問屬性的方法 public boolean isMale() { return male; } // 對外提供設置變量屬性的方法 public void setMale(boolean male) { // this.nale 就代表左邊的male是成員變量 this.male = male; } // 對外提供設置變量屬性的方法 public void SetAge(int age) { this.age = age; } // 對外提供訪問屬性的方法 public int GetAge() { return this.age; } public void run() { // this調用本類中的其他成員方法 System.out.println(this.isMale());//true } }
一個標準的類通常情況有下面幾個部分
- 所有的成員變量都要使用private關鍵字修飾
- 為每一個成員變量編寫一對GetXxx和SetXxx方法
- 編寫一個無參數的構造方法
- 編寫一個全參數的構造方法
- 相應的功能的方法
面向對象三大特征封裝