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