익명 내부 클래스 와 리 셋 함수 에 대하 여

Google Android 개발 에 서 는 익명 의 내부 클래스 와 그 중의 리 셋 함 수 를 자주 사용 합 니 다.예 를 들 어 Button 에 감청 기 를 설정 할 때 OnCLickListener 인 터 페 이 스 를 실현 하고 그 중의 Onclick()방법 을 다시 써 야 합 니 다.이것 이 바로 익명 의 내부 클래스 와 리 셋 함수 입 니 다.자바 익명 의 내부 클래스 와 리 셋 함수 에 대해 얼마나 이해 하 십 니까?이 문 서 는 비교적 상세 한 해석 을 해 준다.
       우선 내부 류 는 JAVA 언어의 주요 부가 부분 임 을 알 아야 한다.내부 클래스 는 거의 한 클래스 내부 의 모든 위치 에 있 을 수 있 고 실례 변수 와 같은 등급 에 있 거나 방법 안에 있 거나 심지어 표현 식 의 일부분 에 있 을 수 있다.자바 의 내부 류 는 구성원 내부 류,국부 내부 류,익명 내부 류 로 나 뉘 는데 다음은 익명 내부 류 이다.
A.반전 함수 에 대하 여
       익명 내부 클래스 에 리 셋 함 수 를 사 용 했 습 니 다.리 셋 함 수 는 무엇 입 니까?
       리 셋 이란 클 라 이언 트 프로그램 C 가 서비스 프로그램 S 의 특정한 함수 A 를 호출 한 다음 에 S 는 어느 때 C 중의 특정한 함수 B 를 반대로 호출 하 는 것 이다.C 에 있어 이 B 를 리 셋 함수 라 고 한다.예 를 들 어 Win 32 의 창 프로 세 스 함 수 는 전형 적 인 반전 함수 입 니 다.일반적으로 C 는 스스로 B 를 호출 하지 않 는 다.C 가 B 를 제공 하 는 목적 은 S 로 하여 금 그것 을 호출 하 게 하 는 것 이 고 C 가 제공 하지 않 을 수 없다.S 는 C 가 제공 하 는 B 의 이름 이 누구 인지 모 르 기 때문에 S 는 B 의 인터페이스 규범(함수 원형)을 약정 한 다음 에 C 가 S 의 한 함수 R 을 통 해 S 에 게 자신 이 B 함 수 를 사용 할 것 이 라 고 알려 준다.이 과정 을 리 셋 함수 의 등록 이 라 고 하고 R 을 등록 함수 라 고 한다.웹 서비스 와 자바 의 RMI 는 모두 리 셋 메커니즘 을 사용 하여 원 격 서버 프로그램 에 접근 할 수 있다.다음은 하나의 예 로 설명 한다.
       프로그래머 A 는 프로그램(프로그램 a)을 썼 는데,그 중 에 리 셋 함수 인터페이스 가 미리 남아 있 고,이 프로그램 을 봉인 했다.프로그래머 B 는 a 에 게 자신의 프로그램 b 중의 한 방법 을 호출 하 게 하려 고 한다.그래서 그 는 a 의 인 터 페 이 스 를 통 해 자신의 b 중의 방법 을 되 돌려 준다.목적 달성.C/C++에서 리 셋 함 수 를 사용 하려 면,떨 어 진 함 수 는 호출 자 에 게 자신의 포인터 주 소 를 알려 야 하 는데,JAVA 에 포인터 가 없 으 면 어떻게 합 니까?우 리 는 인터페이스(interface)를 통 해 리 셋 함 수 를 정의 할 수 있다.     내 가 프로그래머 A 라 고 가정 하면 다음은 나의 프로그램 a 이다.
프로그래머 B 가 내 정의 에 따라 인 터 페 이 스 를 만 들 수 있 도록 인 터 페 이 스 를 정의 해 야 합 니 다.
4.567913.그래서 프로그래머 B 는 이 인터페이스 만 실현 하면 리 셋 의 목적 을 달성 할 수 있다.
 public class Caller   
{   
    public MyCallInterface mc;   
   
    public void setCallfuc(MyCallInterface mc)   
    {   
       this.mc= mc;   
    }   
   
    public void call(){   
       this.mc.method();   
    }   
}       
public class Caller 
{ 
    public MyCallInterface mc; 
 
    public void setCallfuc(MyCallInterface mc) 
    { 
       this.mc= mc; 
    } 
 
    public void call(){ 
       this.mc.method(); 
    } 
}     

B.익명 내부 클래스
내부 류,내부 류 의 역할,자바 의 다 형,무엇이 반전 함수 인지 이해 해 야 합 니 다.인터넷 에는 많은 상세 한 해석 이 있 는데,간단하게 보기 위해 단지 간단 한 설명 을 했 을 뿐이다.익명 내부 클래스 는 함수 의 매개 변수 로 전달 되 는 방법 입 니 다.이 방법 에 서 는 인터페이스 형식 으로 들 어 오 는 익명 클래스 를 받 아들 이 고 그 방법 을 호출 합 니 다.이것 은 다 중 입 니 다.원 리 는 사실 회 조 를 실현 한 것 이다.익명 의 내부 클래스 의 방법 을 사용 할 테 니까.아래 코드 손 이 두 드 린 테스트 되 지 않 은 것 은 단지 시범 을 보이 기 위 한 것 이다.
 public interface MyCallInterface   
{   
    public void method();   
   
}   
public interface MyCallInterface 
{ 
    public void method(); 
 
} 

북경대학-Google Android 실험실 에서 발췌

좋은 웹페이지 즐겨찾기