0

この質問に目を通したところ、逆の状況が気になりました。なぜ必要なのですか?

そこで誰かが言った:

モジュールではなくクラスに「共有メソッド」があるのはなぜですか? 回答: クラスのインスタンス間で共有するため。

これで、非静的クラス内で静的メソッドを使用する必要がある理由は明らかです。反対はどうですか?

4

4 に答える 4

2

その反対 (静的クラスのインスタンス メソッド) は、少なくとも C# では不可能です。コンパイル時エラーが発生します。

于 2012-09-19T11:00:45.013 に答える
1

クラスは、ネストされたクラスである場合にのみ宣言できstaticます。ネストされたクラスに、含まれているクラスのインスタンスを作成せずにアクセスできるようにする場合に宣言します。

それとは別に、それはインスタンス状態(非静的変数)を持つことができる単なる通常のクラスであり、他のクラスと同じようにそのクラスで非静的メソッドを使用します...

たとえば、いくつかの非静的メソッドを持つHashMap静的なネストされたクラスが含まれていEntryます。

ps: C# タグを追加したところです。私の回答は、Java とタグ付けされた元の質問に関連しています。

于 2012-09-19T10:58:41.920 に答える
1

Java では、静的メソッドは、ネストされていない非静的クラスと同じように、ネストされた静的クラスで機能します。

与えられた例でmain(String[] args)は、static

使用しないメソッドがある場合は、メソッドを作成することをお勧めしますthis(そして簡単にします) static。これにより、メソッドがインスタンスを必要としないことが明確になります。

于 2012-09-19T11:00:25.827 に答える
0

静的クラスはインスタンス化できないため、静的クラス内で非静的メソッドを宣言する必要はありません。

于 2012-09-19T11:05:02.930 に答える