これまで、Java で変数の値を設定する 2 つの方法を見てきました。引数を持つコンストラクターが使用される場合もあれば、各変数の値を設定するためにセッター メソッドが使用される場合もあります。
「new」キーワードを使用してクラスがインスタンス化されると、コンストラクターがクラス内のインスタンス変数を初期化することを知っています。
しかし、いつコンストラクターを使用し、いつセッターを使用するのでしょうか?
これまで、Java で変数の値を設定する 2 つの方法を見てきました。引数を持つコンストラクターが使用される場合もあれば、各変数の値を設定するためにセッター メソッドが使用される場合もあります。
「new」キーワードを使用してクラスがインスタンス化されると、コンストラクターがクラス内のインスタンス変数を初期化することを知っています。
しかし、いつコンストラクターを使用し、いつセッターを使用するのでしょうか?
不変クラスにコンストラクターを使用させたい場合は、それ以外の場合はセッターを使用します。
シナリオに応じてアプローチを使用します。
コンストラクター アプローチ: オブジェクトのインスタンス化に必須のパラメーターがあり、それらなしではオブジェクトを構築できない場合は、このアプローチを使用する必要があります。
セッター アプローチ: オプションのパラメーターについては、セッター アプローチを使用できます。
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);