public class Animal {
class Head{
}
}
测试如何实例化内部类:
public class TestInstanceInnerClass {
public TestInstanceInnerClass() {
Animal animal=new Animal()//首先实例化外部类
Head head=animal.new Head()//把内部类当成一个成员变量进行实例化
}
}
假设外部类叫Out,内部类叫In,那么我们可以使用Out.In in = new Out().new In()来实例化内部类的对象,具体示例代码如下:class Out {
private int age = 12
class In {
private int age = 13
public void print() {
int age = 14
System.out.println("局部变量:" + age)
System.out.println("内部类变量:" + this.age)
System.out.println("外部类变量:" + Out.this.age)
}
}
}
public class Demo {
public static void main(String[] args) {
Out.In in = new Out().new In()
in.print()
}
}
要想使用new生成一个
内部类
的实例,需要先指向一个外部类的实例,也就是先生成外部类的实例,因为内部类可以调用外部类的人员成员,当没有外部类实例的时候也就没有这些成员的内存空间,内部类在实例化的时候,调用外部类的成员就会出错,所以需要使用外部类的实例
+
点
+
new
的方式实例化一个新的内部类。