首頁  >  文章  >  Java  >  java 匿名內部類別

java 匿名內部類別

高洛峰
高洛峰原創
2016-12-15 13:26:201276瀏覽

匿名類別對於我現在的理解層面在於它方便靈活了對介面以及抽象類別方法的實現,如果你只需要在一個地方對某個物件實現相應的用法,那麼你就可以考慮使用匿名內部類別啦~ 。光說一定會暈的那麼我們用小例子說話: 

引用

下面的例子是android給按鈕綁定事件的常用方法


Java 

public class Activity1 extends Activity {  
    OnClickListener listener1 = null;  
    Button button1;  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity1);  
        listener1 = new OnClickListener() {//OnClickListener是一个接口  
            public void onClick(View v) {//onClick()方法是这个借口唯一的方法  
                Bundle bundle = new Bundle();  
                bundle.putString("store", "数据来自Activity1");  
                Intent mIntent = new Intent();  
                mIntent.putExtras(bundle);  
                setResult(RESULT_OK, mIntent);  
                finish();  
            }  
        };  
        button1 = (Button) findViewById(R.id.button3);  
        button1.setOnClickListener(listener1);  
                ... ... ...(还有代码在下面~)



Java在於當這個按鈕按下時只會觸動專屬於它的一個事件,不會再有其他事件了,所以使用內部類別就可以把實現和執行動作一併搞定!有點像javascript的匿名函數哦~ 

在給幾個小例子: 


Java程式碼 

package com.eoeAndroid.activity;  
  
  
interface OnClickListener{  
    void onClick(String s);  
}  
  
  
public class testListener {  
      
    public static void main(String... strings){  
        OnClickListener listener = new OnClickListener(){  
  
            @Override  
            public void onClick(String s) {  
                // TODO Auto-generated method stub  
                System.out.println(s);  
            }  
              
        };  
        listener.onClick("OK!");  
    }  
  
}

這個程式碼相當於將OnClickListener介面實作後引用,就好比如下程式碼: rr



更多java 匿名內部類相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn