Home >Java >javaTutorial >java anonymous inner class
My current understanding of anonymous classes is that they facilitate and flexibly implement interfaces and abstract class methods. If you only need to implement the corresponding usage of an object in one place, then you can consider using anonymous inner classes~ . Just saying it will definitely make you dizzy, so let’s talk with a small example:
Quote
The following example is a common method of binding events to buttons 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); ... ... ...(还有代码在下面~)
This uses internal classes, the reason The reason is that when this button is pressed, only one event dedicated to it will be triggered, and there will be no other events, so using internal classes can complete the implementation and execution of the action at the same time! It's a bit like the anonymous function of javascript~
Here are a few small examples:
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!"); } }
This code is equivalent to referencing the OnClickListener interface after implementation, just like the following code:
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!"); } }
For more articles related to java anonymous internal classes, please pay attention to the PHP Chinese website!