java學習筆記(七)類的進階概念

來源:互聯網
上載者:User

標籤:

類的進階概念包括:存取修飾詞、封裝、靜態成員、初始化塊以及內部類等混合內容。

存取修飾詞:

(1).公開存取層級:使用public關鍵字修飾。用public關鍵字修飾的成員對外公開,即公開成員可以被任何其它對象訪問。

(2).受保護存取層級:使用protected關鍵字修飾。受保護的成員可以被同一包中的類所訪問,還可以被類的子類所訪問,不管子類是在哪個包中。

(3).預設存取層級:沒有存取修飾詞。預設存取層級的成員可以被同一包中的其它類所訪問。

(4).私人存取層級:使用private關鍵字修飾。它是四種存取修飾詞中層級最低的。私人成員只有類本身可以訪問,不對外公開。

類本身也有存取修飾詞。但是累的存取修飾詞只有公有的和預設的兩種。

封裝:封裝是使類中的成員變數都是private,並提供public方法訪問這些成員變數的技術。如果一個成員變數被聲明為private,那麼它就不能被其它類訪問,從而隱藏了類中的成員變數。因此封裝也被稱為資料隱藏。

繼承、封裝、多態、抽象是物件導向編程的四大基本概念。

允許擷取成員變數的get方法稱為訪問器(accessor)方法,允許修改成員變數的get方法稱為修改器(mutator)方法。

public class SalesPerson{

      private String name;

      private int id;

      //無參構造器

     public SalesPerson(){

      }

      //有參構造器

      public SalesPerson(String name,int id){

             super();

             this.name = name;

             this.id = id;

      }

      public void setName(String name){

             name = name;

       }

       public void getName(){

              return name;

       }

       

       public void setId(int id){

             id=id;

       }

       public void getName(){

              return id;

       }

}

在寫get(),set()方法時注意命名的方式,一般在應用程式上有自動產生這些方法的操作。

封裝的好處:類的成員變數可以成為唯讀或者唯寫的;類可以對儲存在其成員變數中的內容有一個整體的控制;類的使用者不需要知道類是如何儲存資料的,實現代碼的重用。

靜態成員:關鍵字static允許成員變數或方法不與類的特定執行個體關聯。通過關鍵字static聲明的成員變數或方法可以被認為是全域的,任何其它類可以直接存取靜態成員變數或調用靜態方法,而不需要該類的一個執行個體。

類的靜態成員經常被稱為類成員,因為靜態成員與類相關,而不是某個執行個體。非靜態成員變數和方法經常被稱為執行個體成員,因為非靜態成員變數和方法只存在於類的執行個體中。

靜態方法不能訪問非靜態成員。

執行個體初始化塊:

/**

*父類

*/

public class Electronics{

     public Electronics(){

            System.out.println("構造一個電子裝置");

     }

}

 

/**

*執行個體初始化塊

*/

public class CDPlayer extends Electronics{

       private int songNumber;

       public CDPlayer(int x){

              super();

              System.out.println("構造一個CD播放機");

              songNumber=x;

       }

   {

         System.out.println("在執行個體初始化塊內");

    }

}

 

/**

*運行

*/

public class InstanceInitDemo{

      public static void main(String [] , args){

             System.out.println("在main方法內");

             CDPlayer  c1 = new CDPlayer (1);

             CDPlayer  c2 = new CDPlayer (7);

      }

}

發生順序:

子類中相應的構造器被調用;執行對super的調用,控制流程程跳轉到相應的父類構造器;父類構造器執行完,控制流程程跳回子類構造器;在該子類構造器中的super()後面的任何語句執行前,執行個體初始化塊執行;最後,執行子類構造器中super()後面的語句。

內部類:

靜態內部類:作為類的靜態成員,存在於某個類的內部;

成員內部類:作為類的成員,存在於某個類的內部;

局部內部類:存在於某個方法內部的類;

匿名內部類:存在於某個類的內部,但是無類名的類。

java學習筆記(七)類的進階概念

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.