直接创建内部类B的实例,必须先创建外部类A的实例吗?{:3_66:}作者: 王自强 时间: 2012-8-28 11:49
因为程序中你写的是A b=new A().new B(3);
这句话相当于 A a = new A(); A b = a.new B(3);创建了一个外部类对象,再创建了一个内部类对象,这个内部类在外部类的成员位置上,这个内部类属于外部内对象(一个实例)的成员。
public class Outer {
public class Inner{
}
void f(){
new Inner();//此处不用创建外部类实例就能创建内部类实例,因为相当于在外部类的内部调用外部类的成员一样。内部类在外部类的成员位置上。
}
static void g(){
//在静态方法中也要先创建外部类实例才能创建内部类的实例,因为静态不能访问非静态,只能在静态中创建外部类实例再创建内部类实例。