getter・setter
getter・setterとは
結論から言うと、private になっているフィールド変数を
- 変更するのが setter
- 取得するのが getter
です!
なぜ、どうして、どのように使うのかというのは、カプセル化したものを扱うためです。
getter
getter は 「フィールドの値を取り出すだけのメソッド」 です。
前述の通り、private に設定されたフィールドは外部からアクセスが出来ないので、メソッドを介してアクセスする必要があり、それが getter というわけです。
getter の書き方
こちらがgetter メソッドの書き方になります。
//フィールド変数を定義
private データ型 フィールド名
// getter
public データ型 getフィールド名() {
return this.フィールド名;
}
こちらは、number というフィールド変数に対して作った getter のサンプルです。
// フィールド変数
private int number;
// Getter
public int getNumber() {
return this.number;
}
getter の命名規則
getter の命名規則は setter と同じです。
- フィールド名の頭に「 get 」をつけたキャメルケースで書くこと。( 例: getName )
- getter, setter は 外部で扱えなくてはいけないため、すべて 「public」で記述すること!
setter
setter は単純に**「フィールドに値を代入するためのメソッド」** です。
setter の書き方
こちらがsetter メソッドの書き方になります。
// フィールド変数
private int number;
// setter
public void setNumber(int number) {
this.number = number;
}
こちらは、number というフィールド変数に対して作った setter のサンプルです。
// フィールド変数
private int number;
// setter
public void setNumber(int number) {
this.number = number;
}
setter の命名規則
先程述べたように、setter の命名規則は getter と同じです。
- フィールド名の頭に「 get 」をつけたキャメルケースで書くこと。( 例: getName )
- getter, setter は 外部で扱えなくてはいけないため、すべて 「public」で記述すること!
setter をチェックを掛けて使う
setterメソッドを使って書き込むことで、書き込むデータのチェックを行うことが出来ます。
例えば、フィールド に100以下の値しか入れたくない場合、フィールドに直接値を書き込む場合は書き込む側がチェックをする必要があります。
しかし、setterメソッドであれば、メソッドの中でチェックしておけば書き込む側の手間がなくなり安全性も高くなります。
// フィールド変数
private int フィールド名;
// setter
public void setフィールド名(int 引数名) {
if ( 条件式 ){
this.フィールド名 = 引数名;
}
}