1. 程式人生 > >Java的特徵之一 封裝

Java的特徵之一 封裝

知識點1:首先要清楚Java的特徵一 封裝的目的是什麼?

              就是為了能夠保證類的屬性的即成員變數的安全性,不能讓外界的隨便使用

封裝的步驟是什麼?

             1.將類的屬性定義為private

             2.在類中構造 getter  和setter 的方法,給外界的使用其屬性提供方法,或者改變其屬性

              public  float getter(){

                     return variable

}

             public void setter(float  variable){

                     屬性值=形式引數

}

knowledge 2:how to distisguish the classes which have the same name?

                   use the different package name to represent the class

                   the name of the package .  the same name of class

                   if you want to use the class,you must import the package in the first of the coding.

knowledge 3 : the usage of static

                      static修飾的是指靜態的,可以修飾屬性,方法,初始化模組

                      特點就是說全域性的,在整個類中都可以被使用和修改,通過類.靜態變數或者說靜態方法去呼叫和使用它。

                     在靜態方法中是可以使用靜態變數,不可以使用其他的成員變數,但是在普通的方法中是可以兩者都是用的。

                     靜態初始化模組在建立物件的時候,第一個就被執行,靜態static修飾的都是隨著載入例項化的時候就被執行。

knowledge 4:成員變數和區域性變數的區別:

                     成員變數也叫作例項變數,也就是類中所定義的屬性值

                     區域性變數是類中構造的方法中所使用的屬性值變數值。

                     成員變數可以被同一個類中的方法使用,但是區域性變數只能夠在構造的方法中使用,且一旦兩者同名,優先使用區域性變數。

knowledge 5:Java中的訪問控制符是什麼,作用是什麼?

                       private  ,預設, protected , public

                        控制類中屬性和方法的被訪問的區域

                          private : 本 類 

                         預設:   本類   本包

                         protected : 本類 本包 子類

                        public  : all              

knowledge 6:this的使用

                        this就是用來指當前物件的屬性值或者是方法

                        在定義的封裝中的屬性值中,可以利用選單欄中的source自動生成setter和getter的,那麼一般形式引數是和屬性值是同名的,那麼在構造方法的中就是利用this.屬性值=形式引數,來代替當前呼叫這個方法的物件的屬性。       

 knowledge  7:內部類是什麼?為什麼提出內部類?它怎麼使用?與之對應的外部類有什麼關係和區別呢?(從屬性,方法入手)

                         程式語言多問幾個為什麼,自己提出問題,尋找提出的答案,更加有助於自己的記憶和思考。

                         內部類就是包含在類內部的一個類

                         提出內部類是在封裝這一章節中,說明這樣能夠更好地保護類中的屬性和方法,是封裝的思想

  成員內部類:顧名思義就是定義在類的成員中的內部類,   例項化成員內部類的特點: 使用類,顧名思義就是要先建立物件,進行例項化,但是這個和外部類不一一樣,必須先例項化外部類,通過外部類的物件再去例項化它的內部類

                         Outer  o = new Outer();

                         Innter  inn=o.new Inn();

                      成員內部類可以訪問外部類的所有屬性值,包括外部類私有化的成員變數,但是外部類不可以訪問內部類的方法和屬性值,只能夠通過建立內部類的物件去訪問。

                        如果兩者的屬性名相同,則預設是內部類的,要使用外部類的同名屬性,利用類名.this.屬性值,使用this關鍵字

   靜態內部類:         使用static來修飾的類,對於他來說只可以訪問靜態成員變數,如果不是靜態成員變數必須要例項化利用物件去呼叫      

                                 如果外部類中的靜態變數和內部類中的變數同名,那麼外部類中利用類名.屬性名稱來呼叫

                                 建立物件不需要再建立外部例項,直接例項化就可以(attention)        

   方法內部類:     定義在外部類中的方法中的類,那麼它是能夠在方法中使用,不能被其他的地方去使用,所以它不存在使用Java中的訪問控制符和static等,由於它只能在方法中使用,所以可以直接例項化新的物件去在方法中呼叫它的內部屬性值和方法。