Java では、外部クラスは public、final、default、または abstract の場合があります。静的ではない理由
public static class MyClass{}
Java では、外部クラスは public、final、default、または abstract の場合があります。静的ではない理由
public static class MyClass{}
外部クラスはすでに暗黙的に静的です。
非静的ネスト クラス (= 内部クラス) は、内部クラスが暗黙的にその親クラスへの参照を持っていることを意味します。
そのため、ネストされたクラスの場合、静的と非静的を区別できます。これは外部クラスには意味がありません。
これは、静的/非静的のネストされたクラスの違いを理解するための例です。外部クラスでは意味がない理由を理解する必要があります。
public class MyClass {
private String anAttributeOfMyClass;
private /*static*/ class MyInnerClass {
public void foo() {
/*
* Here, I can access the attribute of the parent class
* because I implicitly have a reference to it.
* Try to make the nested class static an see the difference.
*/
anAttributeOfMyClass.trim();
}
}
}