内部クラスで禁止される静的フィールド: 根拠
Java では、内部クラス (または通常の内部クラス) 内での静的フィールドとメソッドの宣言が禁止されています。
内部クラスは、静的に入れ子になったクラスとは異なり、結合されています。それらを囲んでいるクラスのインスタンスに。これは、内部クラスの各インスタンスが、外側のクラスの特定のインスタンスと一意の関連付けを持つことを意味します。その結果、内部クラス内で静的フィールドを許可すると、静的フィールドがどのインスタンスに属するかに関してあいまいさが生じます。
次の例を考えてみましょう。
class OuterClass { class InnerClass { static int i = 100; // compile error } }
静的フィールドが内部クラスで許可されていた場合内部クラスの場合、静的フィールド i が OuterClass のどのインスタンスに属しているかを判断する明確な方法はありません。このあいまいさは、実行時エラーや一貫性のない動作につながる可能性があります。
さらに、内部クラス内で静的フィールドを許可すると、インスタンス ベースの依存関係の原則に矛盾します。内部クラスは外側のクラスのインスタンスに依存するため、インスタンスから独立して動作するように設計された静的機能を持つことは意味がありません。
要約すると、Java では静的なフィールドとメソッドを禁止しています。維持する内部クラス:
以上がJava 内部クラスで静的フィールドが禁止されているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。