当前位置:首页 > Java

java 如何调用内部类的方法

2026-03-03 21:57:42Java

调用静态内部类的方法

静态内部类(static nested class)与外部类实例无关,可直接通过类名访问。

示例代码:

class OuterClass {
    static class StaticNestedClass {
        void printMessage() {
            System.out.println("Static nested class method");
        }
    }
}

// 调用方式
OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();
nested.printMessage();

调用非静态内部类的方法

非静态内部类(inner class)依赖外部类实例,需先创建外部类对象才能访问。

示例代码:

java 如何调用内部类的方法

class OuterClass {
    class InnerClass {
        void printMessage() {
            System.out.println("Inner class method");
        }
    }
}

// 调用方式
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.printMessage();

通过外部类方法间接调用

若外部类提供公共方法返回内部类实例,可直接通过该方法调用。

示例代码:

class OuterClass {
    private class InnerClass {
        void printMessage() {
            System.out.println("Private inner class method");
        }
    }

    public InnerClass getInnerInstance() {
        return new InnerClass();
    }
}

// 调用方式
OuterClass outer = new OuterClass();
outer.getInnerInstance().printMessage();

匿名内部类的调用

匿名内部类通常用于接口或抽象类的即时实现,直接通过实例调用方法。

java 如何调用内部类的方法

示例代码:

interface Greeting {
    void greet();
}

// 调用方式
Greeting greeting = new Greeting() {
    @Override
    public void greet() {
        System.out.println("Anonymous inner class method");
    }
};
greeting.greet();

局部内部类的调用

局部内部类定义在方法或作用域内,仅能在定义它的块中实例化和调用。

示例代码:

class OuterClass {
    void outerMethod() {
        class LocalInnerClass {
            void printMessage() {
                System.out.println("Local inner class method");
            }
        }
        LocalInnerClass local = new LocalInnerClass();
        local.printMessage();
    }
}

// 调用方式
OuterClass outer = new OuterClass();
outer.outerMethod();

标签: 部类方法
分享给朋友:

相关文章

vue登录实现方法

vue登录实现方法

实现登录功能的核心步骤 前端部分(Vue.js) 使用Vue CLI创建项目并安装必要依赖(axios、vue-router等)。创建登录组件包含表单,绑定v-model到data属性如userna…

vue实现多个方法异步

vue实现多个方法异步

Vue 中实现多个方法异步执行 在 Vue 中实现多个方法异步执行,可以通过多种方式实现,例如使用 Promise、async/await 或 Promise.all 来处理多个异步任务的并发或顺序执…

vue实现打印的方法

vue实现打印的方法

使用window.print()实现打印 在Vue中可以直接调用浏览器的window.print()方法触发打印功能。这种方法简单直接,但会打印整个页面内容。 methods: { printP…

react如何对外提供方法

react如何对外提供方法

在 React 中对外提供方法 React 组件可以通过 ref 或自定义 Hook 的方式对外暴露方法。以下是常见的实现方式: 使用 forwardRef 和 useImperativeHandl…

react父组件如何调用子组件的方法

react父组件如何调用子组件的方法

使用 ref 直接调用子组件方法 在父组件中通过 useRef 或 createRef 创建 ref,并将其传递给子组件。子组件需要使用 forwardRef 和 useImperativeHandl…

react如何调另一个页面方法

react如何调另一个页面方法

在React中调用另一个页面的方法,通常涉及组件间通信或跨路由的方法调用。以下是几种常见实现方式: 通过Props传递方法 父组件可以将方法作为props传递给子组件,子组件直接调用该方法。适用于父…