クラスに静的でないクラスメンバーがない場合は、クラス内のすべてのメソッドを静的にすることをお勧めしますか? 独自のインスタンス変数を持たない何らかの種類のマネージャのように。静的でないクラスメンバーがない場合、クラスを静的にする必要がありますか?
0
A
答えて
0
クラスがインスタンスを持たない場合、すべてのメソッドは静的でなければなりません。myInst.myFunc()
を呼び出す唯一の方法です(myInst
は存在しないため)。
これが関連している可能性がある:Static Classes In Java
Math
の例では、PI、Eなどの異なる定義を持つことができ
Math myCalculator = new Math()
myCalculator.multiply(x,y);
myCalculator
ない限り、しなければならないことが混乱するだろう、良いものです。
だから、要するに、はい、いいえ非静的メンバを持っていないクラスは何もなく、静的メソッド
を持つべきではありません編集:アンディ・トーマスは、それは二つのことを掛けることができますので、あなたのMath
は、Multiplies
インタフェースを実装するかもしれません
良い点を作りました。同時に、私のMultiplierAndAdder
クラス(私はそれがひどいクラスだとわかりますが、例のために)Multiplies
も実装しています。この場合、メソッドは静的でなくてはならず(MUST)、そのインスタンスをインスタンス化してインスタンスをインスタンス化して、それを使用するインスタンスにインスタンスを渡す必要があります。
インターフェイスロジックは、常に私の心の中にありました(教授が教えたように):スクエアペグ、丸穴。丸い穴に収まるようにしたい場合は、円形にする必要があります。あなたが存在しなければ、あなたは丸くなく、穴を通過することはできません。
関連する問題
- 1. クラスメンバーが必要ない場合は、静的関数を使用する方が良いですか?
- 2. RouteConfig.csは静的クラスにする必要があります
- 3. Androidのアダプターは、静的内部クラスまたは非静的内部クラスである必要があります
- 4. ラムダを静的にする必要がありますか?
- 5. 静的なmutexで静的なlock_guardもありますか?
- 6. 基本クラス静的変数を通じて派生クラスメンバーにアクセスする必要があります
- 7. 静的フィールドview.GONEは静的な方法でアクセスする必要がありますか?
- 8. 静的な値はSQLグループ内にある必要がありますか?
- 9. C#LINQターゲットは静的である必要があります
- 10. selfパラメータを使用しないすべてのメソッドを静的クラスにする必要がありますか?
- 11. 静的なクラス変数を初期化する必要はありますか?
- 12. ポーリングクラスを静的にする必要があります
- 13. 一般的な外部クラスの場合、なぜ静的な入れ子クラスを宣言する必要がありますか?
- 14. なぜfprintfを使用する場合、インライン関数を静的宣言する必要がありますか?
- 15. 静的ベクトルは削除する必要がありますか?
- 16. いつasp.netクラスの静的関数を書く必要があります
- 17. 静的変数は、Doxygenドキュメントで終わらない場合があります。
- 18. いつ遅い静的バインディングを使用する必要がありますか?
- 19. デリゲートのプレフィックスをいつ「静的」にする必要がありますか?
- 20. ヘルパーメソッドはC#で静的クラスを使用する必要があります
- 21. ユーティリティクラスに静的な最終ハンドラを用意する必要があります
- 22. t1は静的であるか静的でないか?
- 23. CustomFieldSerializerに静的メソッドが必要なのはなぜですか?
- 24. 関数が静的であると宣言されている場合や、その中のフィールドが静的である場合に静的でない場合は、何らかの違いが生じますか?
- 25. いつ静的メソッドを使用する必要がありますか?
- 26. 静的メソッドのヘルプが必要な
- 27. 私的静的メソッドの必要性はありますか?
- 28. ClassInitializeメソッドを静的にする必要があるのはなぜですか?
- 29. System.Randomクラスが静的でないのはなぜですか?
- 30. 静的初心者:静的なクラス/メソッド内の静的でない変数は静的なことを暗示していますか?
実際、私は、そのようなクラスのすべてのメソッドを静的にしないことをお勧めします。しかし、私はそれが意見の問題だと思う。誰かが反対を主張するならば、私はあまり驚かないだろう。 –
静的メソッドはインターフェイスを実装できないことに注意してください。クラスにインスタンスフィールドがない場合でも、インターフェイスを実装することができます。 –
@Andy良い点。 java.lang.Runnableインタフェースhttps://docs.oracle.com/javase/7/docs/api/java/lang/Runnable.html インスタンスがスレッド上で実行されるようにします。 – Dachstein