Java內部類詳解--匿名內部類
匿名內部類
匿名內部類應該是平時我們編寫程式碼時用得最多的,在編寫事件監聽的程式碼時使用匿名內部類不但方便,而且使程式碼更加容易維護。下面這段程式碼是一段Android事件監聽程式碼:
scan_bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }); history_bt.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } });
這段程式碼為兩個按鈕設定監聽器,這裡面就使用了匿名內部類。這段程式碼中的:
new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub } }
就是匿名內部類的使用。程式碼中需要給按鈕設定監聽器物件,使用匿名內部類能夠在實現父類或者介面中的方法情況下同時產生一個相應的物件,但是前提是這個父類或者介面必須先存在才能這樣使用。當然像下面這種寫法也是可以的,跟上面使用匿名內部類達到效果相同。
private void setListener() { scan_bt.setOnClickListener(new Listener1()); history_bt.setOnClickListener(new Listener2()); } class Listener1 implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub } } class Listener2 implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub } }
這種寫法雖然能達到一樣的效果,但是既冗長又難以維護,所以一般使用匿名內部類的方法來編寫事件監聽程式碼。同樣的,匿名內部類也是不能有訪問修飾符和static修飾符的。
匿名內部類是唯一一種沒有構造器的類。正因為其沒有構造器,所以匿名內部類的使用範圍非常有限,大部分匿名內部類用於介面回撥。匿名內部類在編譯的時候由系統自動起名為Outter$1.class。一般來說,匿名內部類用於繼承其他類或是實現介面,並不需要增加額外的方法,只是對繼承方法的實現或是重寫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952307/viewspace-2678332/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- java內部類,區域性內部類,靜態內部類,匿名內部類Java
- 10-Java內部類——成員內部類、區域性內部類、匿名內部類Java
- Java類與匿名內部類Java
- Java內部類詳解-- 成員內部類Java
- Java內部類詳解--區域性內部類Java
- 匿名內部類
- Java 內部類詳解Java
- Java內部類詳解Java
- Java中的匿名內部類及內部類的二三事Java
- java培訓教程:什麼是匿名內部類?怎樣建立匿名內部類?Java
- 匿名內部類理解
- Java 內部類使用詳解Java
- java匿名內部類:“ 儂好,世界”Java
- 內部類是什麼?匿名內部類又是什麼?
- 匿名內部類的使用
- Java基礎-內部類詳解Java
- Java之區域性匿名內部類物件Java物件
- Java_介面回撥與匿名內部類Java
- java內部類,為什麼需要內部類?Java
- Java 內部類Java
- Java內部類Java
- Java中的靜態內部類詳解Java
- 關於java匿名內部類初始化法Java
- 用匿名內部類實現 Java 同步回撥Java
- 類與介面(二)java的四種內部類詳解Java
- Java基礎內部類4-內部類進階Java
- 10、Java——內部類Java
- 內部類與靜態內部類
- 匿名內部類中關於new Runnable ( )
- 內部類解說
- 內部類
- Java-InnerClass內部類Java
- java中的內部類Java
- 淺談java內部類Java
- Day26:內部類的詳解
- Java 的抽象類, 介面以及內部類Java抽象
- Java 內部類與閉包Java
- 內部類與外部類