有时候看到:new 类名1().new 类名2() 这种代码。
类名1是普通类,类名2是在类名1定义的类,也成为内部类。
public class practice {
public static void main(String[] args) {
outer.inner i = new outer().new inner();
i.work();
}
}
class outer{
class inner{
void work(){
System.out.println("inner work");
}
}
}
点表示的是链式调用,因为new outer()生成的是一个对象,后面跟点还可以生成对象。
inner定义在类中,称为内部类;如果inner定义在方法中,称为局部内部类,它可以无障碍访问方法的形参。