当前位置:首页 > Java

java如何调用内部类

2026-03-03 09:21:25Java

调用静态内部类

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

OuterClass.StaticNestedClass nestedObject = new OuterClass.StaticNestedClass();

静态内部类可以直接访问外部类的静态成员,但无法访问非静态成员。

调用非静态内部类

非静态内部类(inner class)必须通过外部类的实例创建。

OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();

非静态内部类可以直接访问外部类的所有成员(包括私有成员),因为它隐式持有外部类的引用。

匿名内部类的调用

匿名内部类通常用于实现接口或继承类,直接通过 new 关键字实例化。

Runnable runnable = new Runnable() {
    @Override
    public void run() {
        System.out.println("Anonymous inner class");
    }
};

匿名内部类常用于事件监听或临时实现接口的场景。

方法内部类的调用

方法内部类(局部内部类)定义在方法内,仅在该方法中可见,需在方法内实例化。

public void outerMethod() {
    class MethodInnerClass {
        void display() {
            System.out.println("Method inner class");
        }
    }
    MethodInnerClass inner = new MethodInnerClass();
    inner.display();
}

方法内部类不能包含静态成员,且只能访问方法中的 final 或等效不可变局部变量。

访问权限与注意事项

  • 私有内部类:只能在外部类内部实例化,外部无法直接访问。
  • 内部类访问外部成员:非静态内部类可直接访问外部类成员,静态内部类仅能访问静态成员。
  • 内存泄漏风险:非静态内部类隐式持有外部类引用,可能导致内存泄漏,建议在不需要时设为 static 或使用弱引用。

通过以上方式,可以根据需求灵活调用不同类型的内部类。

java如何调用内部类

标签: 部类java
分享给朋友:

相关文章

java如何创建线程

java如何创建线程

创建线程的方法 在Java中,创建线程主要有两种方式:继承Thread类和实现Runnable接口。以下是具体实现方法: 继承Thread类 通过继承Thread类并重写run()方法可以创建线程…

如何编译java文件

如何编译java文件

安装JDK 确保系统已安装Java Development Kit(JDK)。可通过命令行输入 javac -version 和 java -version 验证。若未安装,需从Oracle或Open…

java如何连接mysql

java如何连接mysql

连接 MySQL 数据库的基本步骤 添加 MySQL 驱动依赖 在项目中引入 MySQL 的 JDBC 驱动。如果使用 Maven,在 pom.xml 中添加以下依赖: <dependenc…

如何搭建java开发环境

如何搭建java开发环境

下载并安装JDK 从Oracle官网或OpenJDK下载适合操作系统的JDK版本。运行安装程序并按照提示完成安装,建议选择默认路径以减少配置复杂度。 配置环境变量 在系统环境变量中添加JAVA_HO…

java中如何输入

java中如何输入

输入方法 在Java中,可以通过多种方式实现输入操作,具体取决于输入来源和需求。以下是几种常见的输入方法: 使用Scanner类 Scanner类是Java中最常用的输入工具,适用于从控制台或文件…

java如何导入jar包

java如何导入jar包

在Eclipse中导入JAR包 右键项目 -> 选择"Properties" -> 左侧导航选择"Java Build Path" -> 切换到"Libraries"标签 ->…