はじめに
* 以前、後輩に「getter / setterって意味あるんですか?」って聞かれて
うまく答えられず。たまたま、その関連記事を見つけたので、まとめておく。
アクセサの意義
[1] 不正な値をチェックできる
[2] 代入可能で参照不可のプロパティを作れる
[3] 参照可能で代入不可のプロパティを作れる
[1] 不正な値をチェックできる
サンプル
private int value;
public void setValue(int value) {
// !ここ!
if (value > 0) {
throw new IllegalArgumentException();
}
this.value = value;
}
public int getValue() {
return this.value;
}
[2] 代入可能で参照不可のプロパティを作れる
* setterのみでgetterがない
サンプル
private int value;
// ! setterのみでgetterはない !
public void setValue(int value) {
this.value = value;
}