• 【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类


    内部类:

    1、定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规类功能更加强大。

    2、内部类可以对同一个包中的其他类隐藏起来,不过可以通过 OuterClass.InnerClass来引用public声明的内部类。

    局部内部类:

    1、内部类挪到方法内部,与内部类相比,局部内部类不仅可以访问定义他们的外部类,还可以并且仅可以访问声明为final的局部变量。

    2、类名不能被public、private修饰,默认是default

    3、作用域进作用于声明它的方法中,所以即使这个类的其他方法也不知道他的存在。

    匿名内部类:

    1、将内部类的类名省去,只创建这个类的对象,成为匿名内部类。

    2、将想要定义一个回调函数,但是不想编写大量代码,可以考虑匿名内部类。

    3、语法:

    Class OuterClass{
    
        //外围类的域和方法...
    
       SuperType 对象名 =  new SuperType(construction params){//当SuperType是接口的时候,构造参数必须为空
    
         //内部类的域和方法...
    
    
         }
    
    }
    

    4、获得匿名内部类的方法: new Object().getClass().getEnclosingClass()

    静态内部类:

    1、内部类被static修饰,这样访问特权就没有了,当内部类不需要访问外围类的对象的时候,就定义为静态内部类。

    接口中的内部类:

    1、接口中的域默认是public static final的所以必须立即初始化,并且不能再被赋值,接口中定义的内部类也默认是public static的(方法都默认为public)

  • 相关阅读:
    探究Spark算子-RDD
    Spark架构中YarnCluster模式作业流程
    Spark运行架构和组件
    Spark部署模式&端口号&提交作业参数说明
    Spark和Hadoop的联系和区别
    Idea中文件大小配置
    设计模式-之Scala单例模式
    HDFS集群格式化踩过的坑
    安装Spark时遇见的坑
    配置群起zookeeper的脚本所踩过的坑
  • 原文地址:https://www.cnblogs.com/lucky-star-star/p/4378601.html
Copyright © 2020-2023  润新知