码迷,mamicode.com
首页 > 其他好文 > 详细

5.内部类

时间:2018-08-30 20:00:05      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:写法   创建对象   位置   访问   逻辑   驱动程序   public   参数   事件   

  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.内部类

标签:写法   创建对象   位置   访问   逻辑   驱动程序   public   参数   事件   

原文地址:https://www.cnblogs.com/River111/p/9561914.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!