Java内部类

作者: 九叶轻尘 | 来源:发表于2019-04-16 15:14 被阅读1次

Java中,可以将一个类定义到另一个类或者方法中,这样的类被称为内部类。

四种内部类

一、成员内部类

public class Outter {//外部类

  private Inner inner = null;

  public Outter() {

  }

  public Inner getInnerInstance() {

    if (inner == null)
      inner = new Inner();
    return inner;

  }

  public class Inner {//成员内部类

    public Inner() {

    }

  }
}

成员内部类是最普通的内部类,定义在另一个类的内部,对于外部类而言,内部类可以看作一个成员变量。成员内部类可以无条件访问外部类的所有成员属性和方法,而外部类如果想访问内部类则必须创建一个内部类的对象。内部类是依赖外部类而存在的。

二、局部内部类

class People{
    public People() {
         
    }
}
 
class Man{
    public Man(){
         
    }
     
    public People getWoman(){
        class Woman extends People{   //局部内部类
            int age =0;
        }
        return new Woman();
    }
}

局部内部类是定义在一个方法或者一个作用域里面,访问权限仅限于这个作用域。

三、匿名内部类

mBt.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {

      }
    });

上面代码是Android中用来为按钮设置监听器。匿名内部类不能有访问修饰符和static修饰的。是为一个没有构造器的类,大多用于借口回调。

四、静态内部类

public class Outter {//外部类

  private Inner inner = null;

  public Outter() {

  }

  public Inner getInnerInstance() {

    if (inner == null)
      inner = new Inner();
    return inner;

  }

  public static class Inner {//静态内部类

    public Inner() {

    }

  }
}

静态内部类是成员内部类前面加了一个static关键字,静态内部类不需要依赖于外部类,和静态变量很像。

使用内部类的好处

  1. 每个内部类都能独立的继承一个接口的实现(无论外部类是否已经继承实现),使多继承解决方案变得完整。
  2. 方便将存在一定逻辑关系的类组织在一起,又可以多外界隐藏。
  3. 方便编写时间驱动程序。
  4. 方便编写线程代码。

相关文章

  • Java 中的方法内部类

    Java 中的方法内部类 方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内...

  • PHP转JAVA的记录

    Java 数组 内部类 内部类的创建:内部类可以对包内其他类隐藏想实现一个接口时, 不想新建类文件 内部类可以访问...

  • Java内部类

    Java内部类,简单来说就是将一个类定义在另一个类或者方法里面,主要分为成员内部类,局部内部类,匿名内部类和静态内...

  • Java内部类

    Java内部类 大纲: java内部类有什么特点?为什么需要内部类? 非静态内部类持有外部类的引用 内部类的分类。...

  • 内部类

    内部类可以分为:非静态内部类;静态内部类;匿名内部类。 一、内部类 首先要说,Java为什么要使用内部类?java...

  • Java静态内部类

    Java静态内部类 博客分类: java 两种内部类 Java的内部类有两种,一种是静态内部类,另一种是普通内部类...

  • Kotlin内联类、内部类、嵌套类

    Kotlin内联类、内部类、嵌套类 在开始介绍Kotlin内联类、内部类、嵌套类之前,先简要回顾一下java中的内...

  • JavaSE基础知识学习-----内部类

    内部类 类的五个成分:属性,方法,构造器,代码块,内部类。什么是内部类?在java中,允许一个类定义在另一个类的内...

  • Java 内部类和泛型的理解

    Java 内部类 Java非静态内部类持有对外部类的引用,可以访问外部类的状态使用方法 OuterClass.th...

  • kotlin之内部类,匿名内部类与伴生对象

    个人博客:haichenyi.com。感谢关注 内部类   kotlin的内部类与java的内部类有点不同java...

网友评论

    本文标题:Java内部类

    本文链接:https://www.haomeiwen.com/subject/voubwqtx.html