当前位置:首页 > Java

java如何访问内部类

2026-03-03 14:02:16Java

访问静态内部类

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

java如何访问内部类

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

// 访问方式
OuterClass.StaticNestedClass nested = new OuterClass.StaticNestedClass();
nested.display();

访问非静态内部类

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

java如何访问内部类

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

// 访问方式
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();
inner.display();

访问局部内部类

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

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

// 调用方法触发局部内部类
OuterClass outer = new OuterClass();
outer.method();

访问匿名内部类

匿名内部类通常用于实现接口或继承类,直接通过实例化时定义类体。

interface Greeting {
    void greet();
}

class OuterClass {
    void method() {
        Greeting greeting = new Greeting() {
            public void greet() {
                System.out.println("Anonymous inner class");
            }
        };
        greeting.greet();
    }
}

// 调用方法触发匿名内部类
OuterClass outer = new OuterClass();
outer.method();

注意事项

  • 非静态内部类隐含持有外部类的引用,可能引发内存泄漏。
  • 静态内部类无法直接访问外部类的非静态成员。
  • 局部内部类和匿名内部类的作用域受限,无法在外部重复使用。

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

相关文章

java程序如何运行

java程序如何运行

编写Java代码 使用文本编辑器或IDE(如IntelliJ IDEA、Eclipse)编写Java源代码,保存为.java文件。例如: public class HelloWorld {…

如何配置java环境

如何配置java环境

下载JDK安装包 访问Oracle官网或OpenJDK官网,选择适合操作系统的JDK版本(如Windows、macOS或Linux)。下载完成后,运行安装程序并按照提示完成安装。 设置环境变量 右键…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

java如何避免死锁

java如何避免死锁

避免死锁的方法 固定顺序获取锁 确保所有线程按照相同的顺序获取多个锁。例如,若需要获取锁A和锁B,所有线程必须先获取A再获取B,避免交叉依赖导致的死锁。这种方式破坏了“循环等待”条件。 使用锁超时机…

vue实现java登录注册

vue实现java登录注册

实现 Vue 与 Java 后端的登录注册功能 前端 Vue 部分 安装必要的依赖(如 axios 用于 HTTP 请求): npm install axios 创建登录表单组件(Login.vue…

java如何创建文件

java如何创建文件

创建文件的方法 在Java中创建文件可以通过多种方式实现,以下是常见的几种方法: 使用File.createNewFile()方法 这种方法适用于简单的文件创建需求。需要先创建一个File对象,然…