• 成员内部类 局部内部类 匿名内部类


    内部类有:

      1. 成员内部类

      2. 局部内部类(匿名内部类)

    ============================================

    成员内部类

    定义在成员位置的类

    内用外,随意访问 ; 外用内,需要内部类对象

    如何使用成员内部类

    1. 间接方式: 通过外部类对象调用外部类方法,里面间接使用内部类

    2. 直接方式: 

    外类名.内类名  对象名  =  new  外类名().new  内类名(); :

    内部类重名变量的访问

    内部类的局部变量: 就近原则

    内部类的成员变量: this.变量名

    外部类的成员变量: 外类名.this.变量名

    ===========================================

    局部内部类

    一个类定义在一个方法的内部

    "局部" : 只有在当前所属的方法可以使用它,出了方法就不能用了

    局部内部类,如果访问所在方法的局部变量,那么这个局部变量必须是"有效final的"

    注: 从Java 8 开始,只要局部变量事实不变,那么final关键字可以省略

    ===========================================

     匿名内部类

    如果接口的实现类(或者父类的子类)只需要用一次,那么这种情况下就可以省略掉该类的定义,而改为使用"匿名内部类"

    格式 :

      接口名  对象名  =  new  接口名() {

        //覆盖重写所有抽象方法

      };

    解析 :

    1.new 代表创建对象的动作

    2.接口名称就是匿名内部类需要实现哪个接口

    3.{ ... } 是匿名内部类的内容

    注意 :

    1.匿名内部类在创建对象时,只能使用唯一一次

    2.注意匿名内部类和匿名对象的区别

    匿名内部类省略的是 实现类/子类名称 , 匿名对象省略的是 对象名称

    ===========================================

    类的权限修饰符

    1. 外部类: public default

    2. 成员内部类: 都可以

    3. 局部内部类: 什么都不能写

  • 相关阅读:
    shell 遍历当前目录以及所有子目录下文件
    linux shell 字符串操作(长度,查找,替换)详解
    将自定义结构存入std::set 或者 std::map
    CentOS下搭建SVN服务器
    基于Debian的linux系统软件安装命令
    rm搭配grep删除符合条件的文件
    Centos系统环境
    怎么恢复用mysqldump备份数据和恢复数据
    mac 安装 node.js 的 canvas
    centos 6.5 安装 node.js 的 canvas模块
  • 原文地址:https://www.cnblogs.com/bushishucai/p/9535755.html
Copyright © 2020-2023  润新知