この質問に目を通したところ、逆の状況が気になりました。なぜ必要なのですか?
そこで誰かが言った:
モジュールではなくクラスに「共有メソッド」があるのはなぜですか? 回答: クラスのインスタンス間で共有するため。
これで、非静的クラス内で静的メソッドを使用する必要がある理由は明らかです。反対はどうですか?
その反対 (静的クラスのインスタンス メソッド) は、少なくとも C# では不可能です。コンパイル時エラーが発生します。
クラスは、ネストされたクラスである場合にのみ宣言できstatic
ます。ネストされたクラスに、含まれているクラスのインスタンスを作成せずにアクセスできるようにする場合に宣言します。
それとは別に、それはインスタンス状態(非静的変数)を持つことができる単なる通常のクラスであり、他のクラスと同じようにそのクラスで非静的メソッドを使用します...
たとえば、いくつかの非静的メソッドを持つHashMap
静的なネストされたクラスが含まれていEntry
ます。
ps: C# タグを追加したところです。私の回答は、Java とタグ付けされた元の質問に関連しています。
Java では、静的メソッドは、ネストされていない非静的クラスと同じように、ネストされた静的クラスで機能します。
与えられた例でmain(String[] args)
は、static
使用しないメソッドがある場合は、メソッドを作成することをお勧めしますthis
(そして簡単にします) static
。これにより、メソッドがインスタンスを必要としないことが明確になります。
静的クラスはインスタンス化できないため、静的クラス内で非静的メソッドを宣言する必要はありません。