Heim >Java >javaLernprogramm >Anonyme innere Java-Klasse
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!