Node のネストされたクラスを static として使用せずに、LinkedList の独自の小さな実装を開発しましたが、正常に動作しています....しかし、Java は Node のネストされたクラスを static として使用します。Node のネストされたクラスを static にする強い理由は見つかりませんでした。
誰かがこれを説明するのを手伝ってくれますか?
Node のネストされたクラスを static として使用せずに、LinkedList の独自の小さな実装を開発しましたが、正常に動作しています....しかし、Java は Node のネストされたクラスを static として使用します。Node のネストされたクラスを static にする強い理由は見つかりませんでした。
誰かがこれを説明するのを手伝ってくれますか?
ネストされたクラスは、それを囲むクラスのメンバーです。非静的なネストされたクラス (内部クラス) は、private と宣言されていても、外側のクラスの他のメンバーにアクセスできます。静的なネストされたクラスは、外側のクラスの他のメンバーにアクセスできません。クラス。
入れ子になった静的クラスは、他の最上位クラスと同様に、その外側のクラス (および他のクラス) のインスタンス メンバーと対話します。実際には、入れ子になった静的クラスは、パッケージングの便宜のために別のトップレベル クラスに入れ子になったトップレベル クラスの動作です。
LinkedList.Node は LinkedList によってのみ使用されるため、トップレベル クラスである必要はありません。また、LinkedList のメンバーへのアクセスを必要としないため、静的であることが理にかなっています。これははるかにクリーンなアプローチです。