Javaでは、内部クラスはどのように定義されますか?
Javaでは、内部クラスを作成するために、クラスの内部に別のクラスを定義することができます。内部クラスは、外部クラスのメンバー変数やメソッドにアクセスすることができます。その中には、プライベートメンバーも含まれます。
内部クラスの構文は次のようになります:
class OuterClass {
// 外部类的成员变量和方法
class InnerClass {
// 内部类的成员变量和方法
}
}
上のコードでは、 OuterClass が外部クラスであり、 InnerClass が内部クラスです。
内部クラスにはメンバー内部クラス、ローカル内部クラス、匿名内部クラス、静的内部クラスの4種類があります。
- 内部クラス:内部クラスは、クラス内で定義されるクラスです。外部クラスと同じスコープを持ち、外部クラスのすべてのメンバーにアクセスできます。内部クラスのオブジェクトを作成するには、まず外部クラスのオブジェクトを作成する必要があります。
class OuterClass {
// 外部类的成员变量和方法
class InnerClass {
// 内部类的成员变量和方法
}
public static void main(String[] args) {
OuterClass outer = new OuterClass(); // 创建外部类的对象
InnerClass inner = outer.new InnerClass(); // 创建内部类的对象
}
}
- 最後
class OuterClass {
// 外部类的成员变量和方法
public void method() {
// 方法内的局部变量
final int x = 10;
class LocalInnerClass {
// 局部内部类的成员变量和方法
public void printX() {
System.out.println(x); // 可以访问外部类的成员变量
}
}
LocalInnerClass inner = new LocalInnerClass(); // 创建局部内部类的对象
inner.printX(); // 调用局部内部类的方法
}
}
- 名前のない内部クラス:名前のない内部クラスは、名前がない内部クラスです。通常、インターフェースを実装したり、クラスを継承したりするために使用され、一度だけ使用されます。
interface MyInterface {
void doSomething();
}
class OuterClass {
// 外部类的成员变量和方法
public void method() {
MyInterface inner = new MyInterface() {
// 匿名内部类的实现
public void doSomething() {
// 实现接口方法的具体逻辑
}
};
inner.doSomething(); // 调用接口方法
}
}
- 静的内部クラスは、クラスの内部で定義される静的クラスです。このクラスは外部クラスのインスタンスとは関係なく、外部クラスの静的メンバに直接アクセスできます。
class OuterClass {
// 外部类的静态成员变量和方法
static class StaticInnerClass {
// 静态内部类的成员变量和方法
}
public static void main(String[] args) {
StaticInnerClass inner = new StaticInnerClass(); // 创建静态内部类的对象
}
}