内部类

成员内部类

  • 成员内部类没有用static修饰且定义在在外部类类体中
  • 成员内部类中的方法可以直接使用外部类的实例变量和实例方法
  • 在成员内部类中可以直接用内部类创建对象
  • 内部类拥有和外部类相同的成员或方法的时候,默认情况下会访问内部类的成员,如果要在内部类中访问外部类的同名成员,需要下面这种形式:
    • 外部类.this.成员变量
    • 外部类.this.成员方法
  • 外部类如果要访问内部类的成员,必须先实例化一个内部类的对象

局部内部类

  • 在方法体或语句块(包括方法、构造方法、局部块或静态初始化块)内部定义的类称为局部内部类
  • 局部内部类不能加任何访问修饰符,因为它只对局部块有效
  • 局部内部类只在方法体中有效,就像定义的局部变量一样,在定义的方法体外不能创建局部内部类的对象
  • 在方法内部定义类时,应注意以下问题:
    • 方法定义局部内部类同方法定义局部变量一样,不能使用private、protected、public等访问修饰说明符修饰,也不能使用static修饰,但可以使用final和abstract修饰
    • 方法中的内部类可以访问外部类成员,对于方法的参数和局部变量,必须有final修饰才可以访问
    • static方法中定义的内部类可以访问外部类定义的static成员

匿名内部类

  • 内部类的一种简化写法,可以调用其中的方法等等,但是无法有实例化对象,并且匿名内部类必须是继承或者实现一个外部类或者接口
  • 由于匿名内部类没有名称,所以类体中不能定义构造方法,由于不知道类名也不能使用关键字来创建该类的实例

静态内部类

  • 与类的其他成员相似,可以用static修饰内部类,这样的类称为静态内部类
  • 静态内部类与静态内部方法相似,只能访问外部类的static成员,不能直接访问外部类的实例变量与实例方法,只有通过对象引用才能访问
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 每天醒来 都有些异样 几个问题 往往从脑中一闪而过 都是些生,死,存在这些东西 来不及多想 它们自动消失了 如今看...
    Lonelyran阅读 2,405评论 0 4
  • 1.某一天,准备就寝前: 我:我突然发现…… 艾琳:咋了? 我:我发现我这个头像用了好久了٩(๛ ˘ ³˘)۶❤是...
    墨墨caroline阅读 1,864评论 0 0
  • M有如果阅读 1,697评论 4 18
  • [幸福路人 宋艳俊 平顶山郏县 坚持分享第279天 2018、5.19] 记得给我的学生讲过这样一个故事,故事的大...
    简单男孩阅读 3,621评论 0 0

友情链接更多精彩内容