5.内部类

Posted river111

tags:

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

  1. 什么是内部类
    1. 将一个类的定义放在另一个类的内部,这就是内部类,原来的类称为外部类
    2. 分类(根据定义的位置与方式)
      1. 成员内部类:定义在类的内部
      2. 局部内部类:定义在一个方法或一个作用域里,相当于一个局部变量
      3. 匿名内部类:在需要实例化内部类的地方定义它(通常在方法体内,或参数中)
      4. 静态内部类:定义在类的内部,在类的前面多一个关键字static
  2. 内部类的作用
    1. 每个内部类都能独立的继承一个(接口的)实现,与外部类没关系
    2. 接口只解决了部分问题,而内部类的存在使得Java的多继承机制变得更加完善(允许继承多个非接口类型[类或抽象类)
    3. 图示
  3. 如何使用内部类
    1. 成员内部类
      1. 定义语法:同java的类
      2. 说明
        1) 内部类可访问外部类的所有属性和方法
        1)
        2) 内部类中访问的成员与外部类成员名称相同时的访问方式
        1) 默认访问的是内部类成员
        2) 使用:外部类名.this.成员(变量/方法)来访问外部类成员
        3) 图解

        3) 内部类拥有更多的访问权限
        1) 外部类只有:public和默认的访问权限(包的访问权限)
        2) 内部类其实是外部类的成员所以额外拥有:private,public的访问权限
        3) 图解

        4) 外部类如何访问内部类中成员
        1) 创建内部类实例,然后通过实例来访问内部类成员

    2. 局部内部类
      1. 定义语法:同java的类
      2. 说明
        1) 不能有public,protected,private,static修饰符
        2) 图解
    3. 匿名内部类
      1. 定义语法
        new 外部类名(){
        匿名内部类代码
        };
      2. 说明
        1) 注意点

        2) 用在方法中
        1)
        3) 用在参数中(监听效果时可用此编码风格)

    4. 静态内部类
      1. 定义语法:static class 类名{}
      2. 说明
        1) 静态内部类可直接创建实例
        1) 对静态内部类成员的访问不再需要外部类,用它直接创建对象即可
        2) 静态内部类可访问外部类的静态成员
        3) 图解
        1)
  4. 内部类在那些地方用
    1. 方便将存在一定逻辑关系的类组织在一起,又可以对外界隐藏
    2. 方便编写事件驱动程序
    3. 方便编写线程代码
  5. 关于内部类的笔试题
    1. 题1
      1. 内容
        1)
      2. 分析
        1)
      3. 答案
        1)
    2. 题2
    3. 题3
      1. 1和2的写法正确吗?有区别吗?说出原因
        1)

        2)




























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

5.内部类

java复习路5

5.6-全栈Java笔记:内部类的四种实现方式

20165330 2017-2018-2 《Java程序设计》第5周学习总结

20165230 2017-2018-2 《Java程序设计》第5周学习总结

ThinkingInJava第十章内部类