1. 程式人生 > >面向對象三大特征封裝

面向對象三大特征封裝

[] 都是 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 } }

一個標準的類通常情況有下面幾個部分

  1. 所有的成員變量都要使用private關鍵字修飾
  2. 為每一個成員變量編寫一對GetXxx和SetXxx方法
  3. 編寫一個無參數的構造方法
  4. 編寫一個全參數的構造方法
  5. 相應的功能的方法

面向對象三大特征封裝