在外部类以外的地方来定义内部类(包括静态和非静态两种)变量的语法格式如下:
OuterClass.InnerClass varName
从上面的语法可以看出:在外部类以外的地方使用内部类时,内部类完整的类名应该
OuterClass.InnerClass。当然如果外部类有包名,则还应该增加包名前缀。
因为非静态内部类的对象必须寄存在外部类的对象里,因此创建非静态内部类对象之前,必须先
创建其外部类的对象。在外部类以为的地方创建非静态内部类实例的语法如下:
OutInstance.new InnerConstructor().
从上面语法格式可看出,在外部类以外的地方创建非静态内部类实例必须使用外部类实例和new来
调用非静态内部类的构造器。下面程序师范了如何在外部类以外的地方创建非静态内部类的对象,并
把它赋给非静态内部类类型的变量。
class Out{
//定义一个内部类,不使用访问控制符,即同一个包中其它类可访问该内部类
class In{
public In(String msg){
System.out.println(msg);
}
}
}
public class CreateInnerInstance{
public static void main(String[] args){
Out.In in = new Out().new In("测试信息");
}
}