53

これまで、Java で変数の値を設定する 2 つの方法を見てきました。引数を持つコンストラクターが使用される場合もあれば、各変数の値を設定するためにセッター メソッドが使用される場合もあります。

「new」キーワードを使用してクラスがインスタンス化されると、コンストラクターがクラス内のインスタンス変数を初期化することを知っています。

しかし、いつコンストラクターを使用し、いつセッターを使用するのでしょうか?

4

10 に答える 10

7

不変クラスにコンストラクターを使用させたい場合は、それ以外の場合はセッターを使用します。

于 2013-10-14T11:54:07.323 に答える
3

シナリオに応じてアプローチを使用します。

  1. コンストラクター アプローチ: オブジェクトのインスタンス化に必須のパラメーターがあり、それらなしではオブジェクトを構築できない場合は、このアプローチを使用する必要があります。

  2. セッター アプローチ: オプションのパラメーターについては、セッター アプローチを使用できます。

于 2013-10-14T12:00:15.353 に答える
2

Counter という名前のクラスがあるとします。

public class Counter{
    int count;
    //constructor
    public Counter(int c){
        count = c;
    }
    public void setCounter(int newCounter){
        count = newCounter;
    }
}

上記のクラスでは、新しいCounter オブジェクトを作成する場合、コンストラクターを使用し、その中にカウント変数を設定します。そのようです:

Counter myCounter = new Counter(1);

実行時にカウント変数を変更する場合は、setter メソッドを使用します。

myCounter.setCounter(2);
于 2013-10-14T11:56:39.090 に答える