zoukankan      html  css  js  c++  java
  • 【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)

  • 相关阅读:
    情报分析技术领域主要研究人员
    《Dynamic Topic Detection and Tracking: A Comparison of HDP, C-Word, and Cocitation Methods》笔记
    Adobe Acrobat 9 Pro 注册码
    文件访问被拒绝 需要管理员权限
    批量文件重命名工具-极力推荐 advanced renamer
    Discuz登录慢、退出也慢的原因?
    一些需要阅读的论文
    webview上传图片
    自定义圆形图片
    touch ImageView
  • 原文地址:https://www.cnblogs.com/lucky-star-star/p/4378601.html
Copyright © 2011-2022 走看看