外部类
定义:

   一个java文件能够蕴含多个class,然而只能有一个Public class,如果一个类定义在另一个类的外部,此时能够被称之为外部类。

应用:

   创立外部类的时候,跟之前办法不一样,须要在内部类的后面增加外部类进行润饰:
InnerClassDemo.InnerClass inner  = new InnerClassDemo().new InnerClass();

特点

1、外部类能够不便的拜访外部类的公有属性(能够间接拜访)2、外部类不能间接拜访外部类的公有属性和办法,但能够通过在外部类中的办法new一个外部类对象来拜访
例如:    public void show() {        System.out.println("show  ");        InnerClass inner = new InnerClass();        System.out.println(inner.age);    }    class InnerClass{        private int age;        public void test(){            System.out.println("test");            System.out.println(id);            System.out.println(name);        }

特点补充(留神)

    1、外部类中不能够定义动态属性。    2、外部类能够当作类中的一个一般成员变量,只不过此成员变量是class类型。    3、如果外部类和外部类具备雷同的成员变量或办法,外部类默认拜访本人的成员变量或办法,如果要拜访外部类的成员变量,须要应用this关键字(类名.this.属性名)。    4、外部类是能够嵌套的。    

语法

[外部类 外部类对象 = new 外部类;外部类.外部类 外部类对象 = 外部类对象().new 外部类();]如果主办法在外部类外部,能够省略Outer:Inner inner = out.new Inner();

分类:

匿名外部类:当定义了一个类,实现了某个接口的时候,在应用过程中只须要应用一次,没有其余用处。思考到代买编写的简洁,能够思考不创立具体的类而采纳new intertacename(){增加未实现的办法}就叫做匿名外部类 ,实质上是new了一个接口的外部实现类动态外部类:1、语法 new 外部类类名.外部类().办法名  ;       外部类类名.外部类 外部类对象名 = new 外部类类名.外部类类名();2、在内部类中能够定义动态外部类,应用static 关键字进行润饰办法外部类(理解):在外部类的办法中定义类    注意事项:1、办法外部类不能在外部类的办法意外的中央应用,所以办法外部类不能应用拜访控制符和static修饰符2、办法外部类如果想应用办法的参数,那么参数前必须加上final关键字