java 封裝

scbiaosdo發表於2018-04-12

什麼是封裝?

封裝就是將屬性私有化,提供公有的方法訪問私有屬性。

封裝的好處

1、可以徹底隱藏方法的內部實現,僅僅提供一個呼叫的方法給其他人,讓其他使用這個類的人不需要關心是如何實現的,只要知道該如何呼叫就行。
2、隱藏方法的內部實現的好處,可以讓保留呼叫方法不變的同時,隨意修改類的結構,而不影響其他人執行結果。
3、封裝還會分開類的屬性,將類的屬性分成私有屬性和公共屬性。私有屬性僅供類自身呼叫,和公共屬性也僅提供一個供外部呼叫的方法。

如何實現封裝

使用private來對變數或者方法進行修飾,變為私有的,無法訪問。

this關鍵字

this是在物件內部指代自身的引用。呼叫成員變數,可以解決成員變數和區域性變數之間發生的任何同名的衝突。

如何訪問

修改屬性的可見性來限制對屬性的訪問,併為每個屬性建立一對取值(getter)方法和賦值(setter)方法,用於對這些屬性的訪問。

  private String name;

public String getName(){
                   return;

          }
       public void setName(String name){

                   this.name=name;
          }

成員變數和區域性變數的區別

1)在類中位置不同
              成員變數:類中,方法外
              區域性變數:方法宣告上,或者再方法定義中
2)在記憶體中的位置不同:
              成員變數:堆記憶體
              區域性變數:棧記憶體
3)生命週期不同:
              成員變數:成員變數是隨著類的載入而載入,隨著類的消失而消失
              區域性變數:隨著方法的呼叫而存在,隨著方法呼叫完畢而消失
4)初始化值不同
              成員變數:初始化由系統預設初始化,
                            對於成員變數,可以不給初始化值,由系統給,然後顯示初始化
              區域性變數:定義一個區域性變數,必須進行初始化,如果不初始化,無法使用(在使用之前進行初始化)

成員方法

成員方法的分類
1)按照返回值劃分
                      void的形式:沒有具體的返回值
                      非void形式:有具體返回值
2)按照引數進行劃分
                      空參

                      有參


有返回值沒有引數的

 
  public String show() {

   }
//沒有返回值,有引數的情況
    public void method(String s) {
        System.out.println(s);

    }
//沒有返回值,沒有引數的情況
    public void function() {
        System.out.println("function student...");
    }    
//有返回值,有引數的情況
    public String function2(String s1,String s2) {
        return s1+ s2;
    }
}

構造方法

構造方法負責物件成員的初始化工作,為例項變數賦予合適的初始值。
構造方法的語法規則:方法名與類名相同。沒有返回型別。
使用new關鍵字例項化物件的過程實際上就是呼叫構造方法的過程。或者說例項化一個物件實際上就是去呼叫這個物件的構造方法。
class Student{
    public Student() {
        System.out.println("................................");
    }

}

成員方法與構造方法的區別

作用不同:
構造方法用於建立類的例項並對例項的成員變數進行初始化;成員方法實現對類中成員變數的操作,提供某些功能。
呼叫方式不同:

構造方法通過new運算子呼叫,成員方法通過物件呼叫。

書寫規範

1、定義成員變數
2、書寫無參構造方法(系統預設給出,建議自己書寫)
3、書寫有參構造方法(初始化成員變數)
4、書寫setXXX方法與getXXX方法(對成員變數的操作)

相關文章