12章17

RMAG news

インナークラス(内部クラス)は、別のクラスの内部で定義されたクラスのことを指します。インナークラスは、外部クラスのメンバーとして扱われ、外部クラスの private メンバーにもアクセスできます。

インナークラスには、以下の4種類があります:

メンバークラス(Member Class)

外部クラスのメンバーとして定義されるクラス
static修飾子を付けることで、静的メンバークラスになる
非静的メンバークラスは、外部クラスのインスタンスに関連付けられる

ローカルクラス(Local Class)

メソッド内で定義されるクラス
メソッドのローカル変数のスコープ内でのみ有効
外部クラスの private メンバーにアクセス可能

匿名クラス(Anonymous Class)

名前を持たないクラス
クラス宣言と同時にインスタンスを生成
一度しか使用されない場合に便利

静的ネストクラス(Static Nested Class)

static修飾子が付けられたメンバークラス
外部クラスのインスタンスに関連付けられない
外部クラスの static メンバーにのみアクセス可能

以下は、インナークラスの例です:

public class OuterClass {
private int outerField = 10;

// メンバークラス
public class MemberClass {
public void accessOuterField() {
System.out.println(“Accessing outer field: “ + outerField);
}
}

// 静的ネストクラス
public static class StaticNestedClass {
public void doSomething() {
System.out.println(“Doing something in static nested class.”);
}
}

public void someMethod() {
// ローカルクラス
class LocalClass {
public void doSomething() {
System.out.println(“Doing something in local class.”);
}
}
LocalClass localObj = new LocalClass();
localObj.doSomething();
}

public void createAnonymousClass() {
// 匿名クラス
Runnable anonymousObj = new Runnable() {
@Override
public void run() {
System.out.println(“Running in anonymous class.”);
}
};
anonymousObj.run();
}
}

インナークラスは、外部クラスとの密接な関係を表現するために使用されます。また、コードの可読性や管理性を向上させるために役立ちます。ただし、インナークラスの乱用は避け、必要な場合にのみ使用するようにしましょう。

Leave a Reply

Your email address will not be published. Required fields are marked *