Javaプログラミング、インスタンス変数の操作
Javaプログラミングにおいて、インスタンス変数を操作する処理を記述する際、気をつけることはありますか?
Javaプログラミングのインスタンス変数を操作する処理は、インスタンス変数宣言の近所にあると良いです。
ここで言う近所とは、同じJavaソースファイルのことです。
インスタンス変数に関連する処理を、同じJavaソースファイルに記述しましょう。
そうしたら、インスタンス変数に関する各処理を理解しやすいです。
Javaプログラミング、インスタンス変数を操作する処理
Javaプログラミングのクラス内に定義してある、インスタンス変数の操作についてです。
インスタンス変数の値を操作する処理――例:値を設定する処理、値を取得する処理――は、インスタンス変数宣言の近所にあると良いです。
どのようにインスタンス変数の値を取り扱っているのか知りたい場合、近所――同じJavaソースファイル――を見れば、わかるからです。
そしてインスタンス変数の値を操作する処理は、一つのメソッドにまとまっている、と良いです。
値を操作する処理を修正したり、理解したりする場合、そのメソッド1ヵ所だけ見れば良いからです。
関連する記事:setterメソッド・getterメソッド。

インスタンス変数selectedDivisionの値を操作する処理の例
インスタンス変数の値を操作する処理の例を、示します。
なお、プログラムの詳細を理解する必要は、ありません。
public class TimeItem {
....
//区分
static final String divisionNotSelected = "divisionNotSelected";
static final String paidVacation = "paidVacation";
static final String myConvenience = "myConvenience";
static final String companyConvenience = "companyConvenience";
private String selectedDivision;//区分
//例:<html:select>タグが利用する。
public void setSelectedDivision(String division){
assert division.equals(divisionNotSelected);
assert division.equals(paidVacation);
assert division.equals(myConvenience);
assert division.equals(companyConvenience);
this.selectedDivision = division;
}
....
}
インスタンス変数selectedDivisionを操作する――値を設定する――処理の例です。
次の文は、インスタンス変数selectedDivisionの宣言です。
private String selectedDivision;//区分
次の文は、インスタンス変数selectedDivisionに、変数divisionの文字列を設定します。
this.selectedDivision = division;
次の文は、インスタンス変数の値に関する処理です。
取り扱える値を限定しています。
assert division.equals(divisionNotSelected);
assert division.equals(paidVacation);
assert division.equals(myConvenience);
assert division.equals(companyConvenience);
assert文によって、この変数divisionは、次の4個の文字列だけ、取り扱えることを示します。
"divisionNotSelected"
"paidVacation"
"myConvenience"
"companyConvenience"
つまりインスタンス変数selectedDivisionの値は、それら4種類の文字列だけ設定できます。
インスタンス変数selectedDivisionの値を操作する処理が、近所にあること
このように以下の項目が、クラスTimeItem内にあります。
- インスタンス変数selectedDivisionの宣言
- インスタンス変数の値について、取り扱える値を限定する処理
- インスタンス変数の値を操作――値を設定――する処理
つまり「これらの項目」が、近所に書かれています。
よって、インスタンス変数selectedDivisionに関する処理を理解しやすくなっている、と思います。
そして、 このインスタンス変数selectedDivisionの値について、取り扱える値を限定する処理は、setSelectedDivision()メソッドにまとめられています。
つまり値を限定する処理は、プログラム中に「ただ1ヵ所」だけです。
よってselectedDivisionの値を限定する処理を理解したり、修正したりする場合は、このsetSelectedDivision()メソッドだけを見れば良いです。
※この記事は、2003年6月当時の記事になります。