[Java 编程思想]第十章

内部类

定义:每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。

特性

  • 内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
  • 在单个外围类中,可以让多个内部类以不同的方式实现同一个接口,或者继承同一个类。
  • 创建内部类对象的时刻并不依赖于外围类对象的创建。
  • 内部类提供了更好的封装,除了该外围类,其他类都不能访问。

例如

      public class OuterClass {
            private String name;
            private int age;
            public String getName() {
                return name;
            }
            public void setName(String name) {
                this.name = name;
            }            public int getAge() {
                return age;
            }
            public void setAge(int age) {
                this.age = age;
            }
            public class InnerClass {
                public InnerClass() {
                    name = "chenssy";
                    age = 23;
                }
                public void display() {
                    System.out.println("name:" + getName() + "   ;age:" + getAge());
                }
            }
            public static void main(String[] args) {
                OuterClass outerClass = new OuterClass();
                OuterClass.InnerClass innerClass = outerClass.new InnerClass();
                innerClass.display();
            }
        }

编译:内部类是个编译时的概念,一旦编译成功后,它就与外围类属于两个完全不同的类(当然他们之间还是有联系的)。对于一个名为OuterClass的外围类和一个名为InnerClass的内部类,在编译成功后,会出现这样两个class文件:OuterClass.class和OuterClass$InnerClass.class

类别内部类主要分为成员内部类、局部内部类、匿名内部类、静态内部类

注意

  • 第一:成员内部类中不能存在任何static的变量和方法;
  • 第二:成员内部类是依附于外围类的,所以只有先创建了外围类才能够创建内部类。

静态内部类:
使用static修饰的内部类称之为静态内部类。
1、 它的创建是不需要依赖于外围类的。
2、 它不能使用任何外围类的非static成员变量和方法。

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

推荐阅读更多精彩内容

  • 第一章 对象导论 对象具有状态、行为和标识。这意味着每一个对象都可以拥有内部数据和方法,并且每一个对象都可以唯一地...
    niaoge2016阅读 4,363评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,958评论 18 399
  • 多态 任何域的访问操作都将有编译器解析,如果某个方法是静态的,它的行为就不具有多态性 java默认对象的销毁顺序与...
    yueyue_projects阅读 4,551评论 0 1
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 7,602评论 0 11
  • 垃圾回收机制 比较好的文章: JVM 优化经验总结 JVM调优总结 1⃣️可回收对象算法 目前查看对象是否需要回收...
    Rinoux阅读 4,130评论 0 0