Javaソースコードにおいて、波括弧 {} を使用して変数の寿命を限定する書き方
Javaソースコードにおいて、変数が間違った場所で使用されるのを防ぎたいです。
Javaソースコードにおいて、波括弧 { } を使用して、変数の寿命(変数の有効範囲)を限定できます。
変数の有効範囲を限定することは、変数が間違った場所で使われることを防ぎます。
Javaソースコードで変数を記述する際、変数の有効範囲を限定してください。
そうすることで、変数の誤用によるプログラムの誤動作を防げます。
Javaソースコードで、波括弧 {} を使用して変数の寿命を限定する書き方
Javaソースコードにおいて波括弧 { } を使用して、変数の寿命――有効範囲――を限定できます。
適切に変数の有効範囲を限定することによって、変数が間違った場所で使用されるのを防げます。
変数の誤用を防ぐことで、プログラムの誤動作を防げます。
変数の寿命を限定しているプログラムの例
メソッド内の変数について、以下に「変数の寿命(有効範囲)を限定している例」を示します。
プログラムの詳細を理解する必要は、ありません。
public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
HttpSession session = request.getSession();
....
{ //波括弧その1
UserInfo userInfo = new UserInfo(username);
userInfo.setSelectedHeaderText("あいさつ文");
userInfo.setSelectedFooterText("署名など");
session.setAttribute("userInfo", userInfo);
}
{ //波括弧その2
String boardname = manager.getBoardname(boardID);
session.setAttribute("boardname", boardname);
}
//最初に表示するメッセージを準備する
int startID = manager.getLastMessageStartID(boardID);
....
}
userInfo変数は、波括弧その1 { } 内だけで使用できます。その他の場所では、使用できません。
例えば以下のように、
userInfo変数を、波括弧その2の範囲にあるsession.setAttribute()メソッドの引数に設定する、
という間違ったプログラムを記述できません。
{ //波括弧その1
UserInfo userInfo = new UserInfo(username);
...
}
{ //波括弧その2
...
session.setAttribute("boardname", userInfo);//コンパイルエラーになる
}
この場合、波括弧その2 { } 内でuserInfo変数を使用できない、というコンパイルエラーになります。
このコンパイルエラーで、プログラムの記述ミスに気づきます。
boardname変数についても同様です。
boardname変数は、波括弧その2 { } 内だけで使用できます。
その他の場所で、記述ミスによって間違って使用されることはありません。
波括弧を使った書き方の場合、「正常処理の流れ」が右側に移動します
ところで、このように波括弧を使った書き方の場合、正常処理の青線に影響を与えます。
波括弧を使うことにより、ソースコードは以下の影響を受けます。
- 字下げをすることになる。
- 波括弧の分だけ行数が増える。
正常処理の青線が、字下げの分だけ右側に移動して、波括弧の分だけ長くなります。
よって「正常処理の流れ」について、少しわかりにくくなります。
しかし、間違って変数を使用することを防げるので、プログラムの誤動作も防げます。
よって、波括弧を使った書き方は、プログラムの品質を良くすることに役立つ、と言えます。
※ここまでの記事は、2003年6月当時の記事になります。
{} の名称は、波括弧それとも中括弧?
{} の名称について調べたところ、
一般的に、{} は波括弧と呼ばれますが、中括弧と呼ぶ場合もある、ということです。
波括弧という名称は、以下の用途で使われます。
- 複数の要素をグループ化する。
- プログラミング言語のコードブロックを示す。
中括弧という名称は、集合や区間を表すのに使われます。
実は私は、ずっと前から {} の名称を中括弧だと思っていました。
だけど、プログラミングを話題にしたブログ記事などを見ると、波括弧と呼んでいる場合が多かった気がします。
プログラミングの話題では、波括弧という名称を使っておけば、問題なさそうです。
変数にまつわるソースコードの可読性や保守性が向上する、波括弧を使用して変数の寿命(有効範囲)を限定する書き方
この記事では、ローカル変数に対して、波括弧を使用して寿命(有効範囲)を限定する書き方について、お話してきました。
ローカル変数の有効範囲を限定することには、以下のような利点があります。
ローカル変数にまつわるソースコードの可読性や保守性が向上する
ローカル変数はブロック内でのみ使用されるため、ソースコードの可読性や保守性が向上します。
波括弧を使用することで、ローカル変数のスコープを明確にすることができます。
変数がどこで宣言されて、どこまで有効かについて、わかりやすくなります。
ローカル変数を有効範囲外で使うと、コンパイルエラーになります。エラーによって、変数に関する記述ミスに気がつきます。
よって、ローカル変数にまつわるソースコードの可読性や保守性が向上します。
ローカル変数の名前の衝突を防ぐ
ローカル変数の名前の衝突を、防ぐことができます。
同じ名前の変数を別のブロックで宣言しても、それぞれのブロック内でしか参照できません。
よって、ローカル変数の名前について、混乱が起こりにくいです。
プログラムのメモリ効率が良くなる
変数が必要なブロック内だけで、変数を宣言すれば、変数の寿命を短くできます。
ローカル変数はブロックが終了すると、自動的に破棄されて、メモリから解放されます。
そのため、プログラムのメモリ効率が良くなります。
以上の事から、Javaプログラミングにおいて、波括弧を使用してローカル変数の寿命(有効範囲)を限定する書き方は、有用と言えます。