Javaでは、内部クラスはどのように定義されますか?

Javaでは、内部クラスを作成するために、クラスの内部に別のクラスを定義することができます。内部クラスは、外部クラスのメンバー変数やメソッドにアクセスすることができます。その中には、プライベートメンバーも含まれます。

内部クラスの構文は次のようになります:

class OuterClass {
    // 外部类的成员变量和方法
    
    class InnerClass {
        // 内部类的成员变量和方法
    }
}

上のコードでは、 OuterClass が外部クラスであり、 InnerClass が内部クラスです。

内部クラスにはメンバー内部クラス、ローカル内部クラス、匿名内部クラス、静的内部クラスの4種類があります。

  1. 内部クラス:内部クラスは、クラス内で定義されるクラスです。外部クラスと同じスコープを持ち、外部クラスのすべてのメンバーにアクセスできます。内部クラスのオブジェクトを作成するには、まず外部クラスのオブジェクトを作成する必要があります。
class OuterClass {
    // 外部类的成员变量和方法
    
    class InnerClass {
        // 内部类的成员变量和方法
    }
    
    public static void main(String[] args) {
        OuterClass outer = new OuterClass(); // 创建外部类的对象
        InnerClass inner = outer.new InnerClass(); // 创建内部类的对象
    }
}
  1. 最後
class OuterClass {
    // 外部类的成员变量和方法
    
    public void method() {
        // 方法内的局部变量
        final int x = 10;
        
        class LocalInnerClass {
            // 局部内部类的成员变量和方法
            public void printX() {
                System.out.println(x); // 可以访问外部类的成员变量
            }
        }
        
        LocalInnerClass inner = new LocalInnerClass(); // 创建局部内部类的对象
        inner.printX(); // 调用局部内部类的方法
    }
}
  1. 名前のない内部クラス:名前のない内部クラスは、名前がない内部クラスです。通常、インターフェースを実装したり、クラスを継承したりするために使用され、一度だけ使用されます。
interface MyInterface {
    void doSomething();
}

class OuterClass {
    // 外部类的成员变量和方法
    
    public void method() {
        MyInterface inner = new MyInterface() {
            // 匿名内部类的实现
            public void doSomething() {
                // 实现接口方法的具体逻辑
            }
        };
        
        inner.doSomething(); // 调用接口方法
    }
}
  1. 静的内部クラスは、クラスの内部で定義される静的クラスです。このクラスは外部クラスのインスタンスとは関係なく、外部クラスの静的メンバに直接アクセスできます。
class OuterClass {
    // 外部类的静态成员变量和方法
    
    static class StaticInnerClass {
        // 静态内部类的成员变量和方法
    }
    
    public static void main(String[] args) {
        StaticInnerClass inner = new StaticInnerClass(); // 创建静态内部类的对象
    }
}
bannerAds