2

Node のネストされたクラスを static として使用せずに、LinkedList の独自の小さな実装を開発しましたが、正常に動作しています....しかし、Java は Node のネストされたクラスを static として使用します。Node のネストされたクラスを static にする強い理由は見つかりませんでした。

誰かがこれを説明するのを手伝ってくれますか?

4

1 に答える 1

1

ネストされたクラスは、それを囲むクラスのメンバーです。非静的なネストされたクラス (内部クラス) は、private と宣言されていても、外側のクラスの他のメンバーにアクセスできます。静的なネストされたクラスは、外側のクラスの他のメンバーにアクセスできません。クラス。

入れ子になった静的クラスは、他の最上位クラスと同様に、その外側のクラス (および他のクラス) のインスタンス メンバーと対話します。実際には、入れ子になった静的クラスは、パッケージングの便宜のために別のトップレベル クラスに入れ子になったトップレベル クラスの動作です。

LinkedList.Node は LinkedList によってのみ使用されるため、トップレベル クラスである必要はありません。また、LinkedList のメンバーへのアクセスを必要としないため、静的であることが理にかなっています。これははるかにクリーンなアプローチです。

于 2015-03-25T05:26:18.357 に答える