Maison  >  Questions et réponses  >  le corps du texte

java - 怎样才算是一个内部类

请问下怎样才算是一个内部类,最近在看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. 编译器是怎么去判断一个类是内部类的

阿神阿神2744 Il y a quelques jours572

répondre à tous(2)je répondrai

  • ringa_lee

    ringa_lee2017-04-18 10:49:59

    Si vous connaissez les classes internes générales, alors vous devriez connaître cette classe interne, car c'est la plus basique.

    Selon la définition officielle du langage Java, les classes internes sont définies comme suit :

    Une classe imbriquée est membre de sa classe englobante.

    Si une classe est membre d'une autre classe, c'est une classe interne.
    Les classes internes sont divisées en classes internes statiques et classes internes non statiques

    Le gestionnaire ci-dessus est une classe interne non statique. Contrairement aux classes internes statiques, pour initialiser une instance d’une telle classe interne, il doit d’abord exister une instance de sa classe externe.
    Dans une telle classe interne non statique, vous pouvez faire référence à une instance de la classe externe via MainActivity.this. Les classes internes statiques ne sont pas autorisées.

    Tant que le compilateur reconnaît qu'une classe est définie à l'intérieur d'une autre classe, il saura qu'il s'agit d'une classe interne.

    répondre
    0
  • 大家讲道理

    大家讲道理2017-04-18 10:49:59

    C'est ce qu'on appelle une classe interne anonyme

    répondre
    0
  • Annulerrépondre