内部类

Posted aishuijdemiaomiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内部类相关的知识,希望对你有一定的参考价值。

内部类

  • 概念,一个类的定义位于另一个的内部,前者被称为内部类,后者称为外部类
  • 属性,类的成员
    • 类成员
      • 属性
      • 行为
      • 构造器
      • 代码块
      • 内部类
  • 分类
    • 成员内部类,方法外声明的内部类,一般在static中嵌套
      • 被static修饰,嵌套类
      • 没有static修饰的,普通内部类,类模式像对象关联,内部类可以访问外部类所有的属性,相对于作为属性更安全
    • 局部内部类,方法中声明的内部类
      • 普通局部内部类
      • 匿名内部类
  • 使用
    • 内部类可以访问外部类的所有成员
    • 访问外部类的同名成员加类名限定,并加this表示当前内部类
    • 创建
      • 普通内部类,外部类对象之后才能使用外部类对象的new来创建内部类
      • 嵌套类,直接通过类的嵌套关系直接创建,内部的静态成员也可以直接创建,和外部类时平行的关系,只是位于类的内部
      • 内部类
      • 匿名内部类,
        • new Object(){};
        • 声明的同时创建对象,在声明后面加类体
        • 没有类名,所以声明时必须直接创建对象,并且只能多态引用
  • 对象关联,内部类关联外部类
public static void main(String[] args) {
        new InnerClass().action(new Aa(){
            public void action() {
                System.out.println("hello world");
            }
        });
    }
    
    //匿名内部类测试
    interface Aa{
        public void action();
    }
    public void action(Aa aa) {
        aa.action();
    }

以上是关于内部类的主要内容,如果未能解决你的问题,请参考以下文章

片段 - 全局视图变量与本地和内部类侦听器和内存泄漏

为啥片段类应该是公开的?

ForegroundService没有从片段开始?

在内部片段类中使用ListView

自定义无内存泄漏的Handler内部类

底部导航 如何从片段内部更改片段