クラスの「メンバ変数」/フィールドにアクセスする必要がある場合は、直接アクセスするかゲッターとセッターを呼び出すことをお勧めしますか?なぜ?クラスのフィールドにアクセスするときのよい練習
2
A
答えて
3
は、私はあなたのフィールドはプライベート作るのほとんど唯一の利点を参照して唯一のゲッターとセッターおそらく
- アクセス制御を通じたアクセスを提供します。読み取りアクセスのみを提供したい場合、または書き込みアクセスのみを行う場合は、ゲッター/セッター
- を使用して達成することができます。
PropertyChangeEvents
をBeanプロパティに記録する場合は、このコードを設定者に含めることができます。それ以外の場合は、このフィールドを直接変更するすべての呼び出しが変更イベントをトリガーする必要があります。 - フィールドを変更するのは私のIDEで簡単に見つけることができます。フィールドへの唯一の直接アクセスはクラス内にあり(プライベートフィールドなので)、外部の変更はすべてセッターを経由します。これは、フィールドのウォッチポイントにフィールドの変更はセッターをオーバーライドすることができたときに、余分な何かをしたい
- サブクラスを使用するより速くデバッグを可能にし、を呼び出し、何か余分な
私が考えることができる唯一の可能な欠点を行います(getterとsetterのために)書くためにはもう少しコードが必要で、クラスの外からフィールドにアクセスするためのコードはもう少し必要です。 link1、link2
3
直接アクセスするのではなく、setter/getterを呼び出します。そうすれば、セッター/ゲッターに余分に必要なコードが実行されます。
0
それは呼び出し元のクラスのメンバーである場合、それを直接アクセスします。しかし、現在のIDEでこれはかなりラメ言い訳
いくつかの余分な文献があります。それ以外の場合は、getter/setterメソッドを使用します。
なぜですか?呼び出し側のクラスが独自のメンバーにアクセスできるように、getter/setterメソッドを作成しないでください。それ以外の場合は、他の人が詳しく述べた理由でゲッター/セッターメソッドを使うべきです。
2
ゲッター/セッターでは、遅延のあるインスタンス化が可能です。さらに、この方法で変数へのアクセスを制御することができます(自分自身でも、APIの一部としても公開することができます)。初期化の実装を隠す能力なども非常に重要です。
私の意見では、S/Gの最大の利点は、誰かがあなたのコントロールなしにそれを変更するリスクが減少することです。小さな例です。ゲッターが元のものではなくオリジナルのcopy
を与えるかもしれないと考えてください。
利点は複数あり、選択肢がある場合は、データカプセル化と制御の利点のためにsetter/getterを選択します。
関連する問題
- 1. 同じページに投稿するとよい練習ですか?
- 2. ウェブページの練習
- 3. MockitoとBufferedReaderでの練習
- 4. 「貧弱な練習」とみなされるクラスの数
- 5. 良いアンドロイドネットワークの練習
- 6. Android - ボタンシャドウの良い練習
- 7. JavaScriptのエラー/悪い練習
- 8. C++標準の練習:仮想インターフェイスのクラスとテンプレート
- 9. インポートおよびエイリアシング練習
- 10. iframeを使用するとよい練習ですか
- 11. ポインタを習得しようとするとクラッシュする練習プログラム
- 12. C#マルチフォームコーディングの練習
- 13. ベストjQueryの練習
- 14. インラインイベントハンドラの練習javacript
- 15. wit.aiをどのように練習するのですか?
- 16. PHPレッスン/練習。
- 17. Haarカスケード練習
- 18. 練習問題?
- 19. UserControlsのGridView、悪い練習ですか?
- 20. コンストラクタのスレッド...悪い練習ですか?
- 21. 私は練習のpython演習4
- 22. 正規表現の練習/学習リソース
- 23. デルファイ - System.Copy良い練習
- 24. Macマシンのメインフレームの練習
- 25. バグの修正の練習
- 26. コレートシーケンスのpythonの練習プロジェクト
- 27. xero練習マネージャーとの統合
- 28. 練習のポインタレシーバーとバリューレシーバー:画像
- 29. 複数の転用練習
- 30. Javaの練習問題
これを読んで、「なぜ?」と答えます。部。 http://stackoverflow.com/questions/1568091/why-use-getters-and-setters – RCE