java 如何访问 内部类

java 如何访问 内部类

作者:Rhett Bai发布时间:2026-02-05阅读时长:0 分钟阅读次数:1

用户关注问题

Q
在Java中如何创建内部类的实例?

我想知道在Java里,如果有一个内部类,应该如何正确创建它的对象?

A

创建内部类实例的方法

在Java中,非静态内部类的实例必须通过外部类的实例来创建,语法格式为: OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass(); 静态内部类则可以直接通过外部类来创建:OuterClass.StaticInnerClass inner = new OuterClass.StaticInnerClass();

Q
怎样在外部类的静态方法中使用非静态内部类?

我发现有个场景是在外部类的静态方法里面想访问它的非静态内部类,应该怎么操作?

A

在静态方法里访问非静态内部类的技巧

因为非静态内部类依赖于外部类实例,静态方法不持有外部类实例,因此必须先创建外部类对象,再通过它实例化内部类。代码示例:OuterClass outer = new OuterClass(); OuterClass.InnerClass inner = outer.new InnerClass();这样可以在静态方法中访问非静态内部类。

Q
接口内部类和普通内部类在访问方式上有什么区别?

接口内部类和普通类的内部类访问方式相同吗?有哪些需要注意的地方?

A

接口内部类与普通内部类的访问对比

接口中的内部类默认是public static的,因此无需创建外部类实例即可直接访问,例如InterfaceName.InnerClass inner = new InterfaceName.InnerClass(); 普通成员内部类则通常是非静态,需要依赖外部类实例来创建。注意访问权限和对象创建方式的区别。