熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

java封閉之內部類

2013-11-23 19:13:43  來源: Java核心技術 

  java重要的三大特性之封裝到今天已經總結完了當然還有一些比較重要的概念沒有總結比如staticfinally關鍵字this關鍵字構造函數的特性因為考慮到這些概念在繼承多態中還會有體現所以等到另外兩大特性講完之後在統一總結

  這裡還有一個不常用的概念就是內部類

  基本概念:

  就是在一個類的內部在定義一個類
 
  存在即是合理的內部類在JDK之後便開始存在了存在的原因是因為:
  

  可以讓程序設計中邏輯上相關的類結合在一起

  內部類可以直接訪問外部類的成員

  那麼先看看它的優點和好處:

  內部類的對象能夠訪問創建它的對象的所有的方法和屬性包括私有數據

  對於同一個包中的其它類來說內部類是隱形的
 
  匿名內部類可以很方便地定義回調

  使用內部類可以很方便地編寫事件驅動的程序

結構特點:

  class outerClass{ 
          //outerClass的成員變量 
     
         class innerClass{ 
        } 
     
      } 

  內部類同樣可以擁有public private protected等權限符修飾因為它僅僅是外部類的一個成員變量


 
 三實例化:


    outerClass oc = new outerClass(); 
    outerClassinnerClass ic = ocnew innerClass(); 

  so prefect!


內部類對與初學者很少使用了解它的存在即可分類: 根據內部類的存在方式還可以細分為以下幾種

局部內部類將類直接定義到外部類的方法體之中與局部變量有著相同的作用域

靜態內部類

   若該內部類不想訪問創建其外部類的屬性和方法的時候可以將其設置位靜態類這就是靜態內部類
外部類要引用他時就可一不必創建對象直接引用在靜態內部類中只能訪問外部類的靜態成員
構造靜態內部類對象不再構造外部類對象


匿名內部類(這個用的多一些在SWT程序設計中事件監控器代碼中比較常見)

    在編寫代碼的時候不必要給內部類取一個名字可以直接以類的對象名來代替
在SWT編程的事件監控器代碼中會大量使用匿名內部類這樣會可以大大的簡化代碼的編寫並增強了代碼的可讀性

如示例
 
     Object o = new Object(){ 
     
        public String toString(){ 
     
           retrun 這只是幾行無聊的代碼罷了!
        } 
    }; 
該示例定義了一個沒有名稱的類它繼承了Object類並重新定義(Override) toString()new表示實例化了這個沒有名稱的類

<封裝特性中需要注意的筆者認為的暫時就總結這麼多>請高手更正!

 


From:http://tw.wingwit.com/Article/program/Java/hx/201311/26480.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.