java - 怎样才算是一个内部类
阿神
阿神 2017-04-18 10:47:59
0
2
611

请问下怎样才算是一个内部类,最近在看android的Handler方面的东西,有点被搞晕了,一般情况下的内部类我是明白的,但是为什么Handler也算是Activity的一个内部类。

public class MainActivity extends Activity{
    private Handler mHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
        }
    };   
}

Handler并已经是一个被定义好的类,只不过在使用的时候一般回去重写其中的handleMessage方法,这样就算是一个内部类了吗?

这里主要是想请问下:

  1. 内部类的定义是什么?

  2. 编译器是怎么去判断一个类是内部类的

阿神
阿神

闭关修行中......

모든 응답(2)
左手右手慢动作

일반적인 내부 클래스를 알고 있다면 가장 기본적인 내부 클래스이기 때문에 이 내부 클래스도 알아야 합니다.

Java 언어의 공식 정의에 따르면 내부 클래스는 다음과 같이 정의됩니다.

중첩 클래스는 자신을 포함하는 클래스의 멤버입니다.

클래스가 다른 클래스의 멤버인 경우 내부 클래스입니다.
내부 클래스는 정적 내부 클래스비정적 내부 클래스

로 구분됩니다.

위 핸들러는 비정적 내부 클래스입니다. 정적 내부 클래스와 달리 이러한 내부 클래스의 인스턴스를 초기화하려면 먼저 외부 클래스의 인스턴스가 있어야 합니다.
이러한 비정적 내부 클래스에서는 MainActivity.this을 통해 외부 클래스의 인스턴스를 참조할 수 있습니다. 정적 내부 클래스는 허용되지 않습니다.

컴파일러는 클래스가 다른 클래스 내부에 정의되어 있음을 인식하는 한 해당 클래스가 내부 클래스라는 것을 알 수 있습니다.

大家讲道理

이를 익명 내부 클래스라고 합니다

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿