You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调用外部类中内部类的方法?如何创建内部类对象并调用其方法?

如何调用外部类中内部类的方法(附代码示例)

嘿,针对你提出的两个问题——怎么调用Inner内部类的方法、怎么创建它的对象,我结合你给的代码来一步步说明:

首先,你代码里的Inner是非静态内部类(没有static关键字修饰),这种内部类的实例必须依附于外部类Construct的实例才能存在,所以得按以下步骤来:

1. 先创建外部类的实例

你已经在main方法里写了这一步,没问题:

Construct c = new Construct();

2. 通过外部类实例创建内部类对象

非静态内部类的对象不能直接new,得借助外部类的实例来初始化,语法是外部类实例.new 内部类(),所以可以这么写:

Construct.Inner innerObj = c.new Inner();

嫌麻烦的话也可以直接把两步合并成一行:

Construct.Inner innerObj = new Construct().new Inner();

3. 调用内部类的方法

拿到内部类的实例后,直接调用inner()方法就可以了:

innerObj.inner();

整合后的完整代码

把这些步骤放进你的main方法里,运行就能看到输出啦:

package collections;
public class Construct {
    class Inner {
        void inner() {
            System.out.println("inner class method ");
        }
    }
    public static void main(String[] args) {
        Construct c = new Construct();
        Construct.Inner innerObj = c.new Inner();
        innerObj.inner();
    }
}

额外补充:如果是静态内部类怎么办?

要是你把Inner改成静态内部类(加上static修饰),那创建对象就不需要依赖外部类实例了,直接这么写就行:

// 假设Inner是static class
Construct.Inner staticInnerObj = new Construct.Inner();
staticInnerObj.inner();

内容的提问来源于stack exchange,提问作者Hinamika Jain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:16:28