外部类
定义:
一个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关键字