必须将内部类声明为静态嵌套类(static nested class),才能通过 外部类名.内部类名
的方式直接实例化内部类对象,例如 Animal.hunman a = new Animal.hunman()
。
在Java中,静态嵌套类(static nested class)是与外部类解耦的,它不持有对外部类实例的引用,因此可以独立存在和实例化。静态嵌套类的定义方式是在外部类中使用 static
关键字来修饰内部类的声明。
示例说明:
假设我们有如下代码:
public class Animal {
public static class hunman {
// 内部类的内容
}
}
在这个例子中,hunman
被声明为 Animal
的静态嵌套类。因此,可以像下面这样直接实例化 hunman
类的对象:
Animal.hunman a = new Animal.hunman();
这里不需要先创建 Animal
的实例,直接通过 Animal.hunman
就可以访问和实例化 hunman
类。
如果不使用这种方法,直接定义内部类human(即不加上static),就可以通过如下方法调用