定义

什么是内部类

就是在一个类的内部在定义一个类。

publicclass OuterClass {

    private String name ;

    private int age;

    class InnerClass{

        public InnerClass(){

            name = "chenssy";

            age = 23;

        }

    }

}

InnerClass就是内部类

OuterClass就是外部类

为什么要使用内部类

1.内部类可以访问外部类的所有数据,包括private 数据

2.内部可以对同一个包的其他类隐藏起来

3.当想要定义一个回掉函数又不想编写大量代码时,使用匿名内部类方便

内部类有哪些特征

1.内部类可以申明为private的class,这样就只有外部类可以构造他

2.内部类本质是持有了一个外部类的引用outer,所以可以访问外部内的数据,这个是在编译器自动修改了内部类的构造器,在构造其中添加了一个外部内的引用给它,编译器会把外部内的this传给内部类持有。

3.编译器实际上把内部类和外部内生成了两个单独的文件,outerClass和outerClass$InnerClass文件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,314评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,898评论 18 399
  • 1.import static是Java 5增加的功能,就是将Import类中的静态方法,可以作为本类的静态方法来...
    XLsn0w阅读 5,002评论 0 2
  • 常见图标 添加忽略需要忽略的文件:工程目录下: .gradle文件夹 .idea文件夹 所有build文件夹 ...
    撕裂的我阅读 1,488评论 0 0
  • 爱就像一辆车 车等待着你 我也等候着车 爱來了你爱上车 座在一起的 与爱同行 站在一起的 与爱并肩 给身边需要的人...
    雨林季风阅读 1,787评论 6 14