> Java > java지도 시간 > 본문

자바 익명 내부 클래스

高洛峰
풀어 주다: 2016-12-15 13:26:20
원래의
1280명이 탐색했습니다.

현재 익명 클래스에 대해 제가 이해한 바는 인터페이스와 추상 클래스 메서드를 용이하고 유연하게 구현한다는 것입니다. 한 곳에서 해당 개체의 사용법만 구현해야 한다면 익명 내부 클래스 La~를 사용하는 것을 고려해 볼 수 있습니다. 그냥 말하면 어지러울 테니 작은 예를 들어 이야기해 봅시다.

인용문

다음 예는 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 코드

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 인터페이스를 참조하는 것과 동일합니다. 예를 들어 다음 코드가 구현됩니다.

Java 코드

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!");  
    }  
  
}
로그인 후 복사



더 보기 java 익명 내부 클래스 관련 기사 PHP 중국어 사이트를 주목해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿