Heim >Java >javaLernprogramm >Anonyme innere Java-Klasse

Anonyme innere Java-Klasse

高洛峰
高洛峰Original
2016-12-15 13:26:201299Durchsuche

Mein aktuelles Verständnis von anonymen Klassen ist, dass sie Schnittstellen und abstrakte Klassenmethoden ermöglichen und flexibel implementieren. Wenn Sie die entsprechende Verwendung eines Objekts nur an einer Stelle implementieren müssen, können Sie die Verwendung anonymer innerer Klassen La~ in Betracht ziehen. Wenn Sie es nur sagen, wird Ihnen auf jeden Fall schwindlig, also lassen Sie uns mit einem kleinen Beispiel sprechen:

Zitat

Das folgende Beispiel ist eine gängige Methode zum Binden von Ereignissen an Schaltflächen in Android


Java-Code

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);  
                ... ... ...(还有代码在下面~)

Hierbei wird eine interne Klasse verwendet, denn wenn diese Schaltfläche gedrückt wird, wird nur ein dafür vorgesehenes Ereignis ausgelöst, und das wird auch so sein Keine anderen Ereignisse, sodass die Verwendung innerer Klassen die Implementierung und Ausführung von Aktionen gleichzeitig abschließen kann! Es ist ein bisschen wie eine anonyme Funktion in Javascript~
Hier sind ein paar kleine Beispiele:

Java-Code

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!");  
    }  
  
}

Dieser Code entspricht der anschließenden Referenzierung der OnClickListener-Schnittstelle Es ist beispielsweise der folgende Code implementiert:

Java-Code

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



Mehr Java anonyme Artikel zu inneren Klassen Bitte beachten Sie die chinesische PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn