変数の寿命・Javaソースコードの書き方

変数の寿命をコントロール

寿命

寿命のイメージ画像

中カッコ { } を使用して、変数の寿命――有効範囲――をコントロールできます。
適切に有効範囲をコントロールすることによって、変数が間違った場所で使用されることを防げます。

プログラムの例

メソッド内の変数について、以下に「有効範囲をコントロールしている例」を示します。
プログラムの詳細を理解する必要は、ありません。

public ActionForward perform(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
    
    HttpSession session = request.getSession();
    ....

    {
        UserInfo userInfo = new UserInfo(username);
        userInfo.setSelectedHeaderText("あいさつ文");
        userInfo.setSelectedFooterText("署名など");
        session.setAttribute("userInfo", userInfo);
    }
    {
        String boardname = manager.getBoardname(boardID);
        session.setAttribute("boardname", boardname);
    }

    //最初に表示するメッセージを準備する
    int startID = manager.getLastMessageStartID(boardID);
    
    ....
    
}

userInfo変数は、水色の中カッコ { } 内だけで使用できます。その他では、使用できません。

例えば以下のように、userInfo変数を緑色の”boardname”の値として設定する、という間違ったプログラムを記述できません(コンパイルできません)。
例:

    {
        UserInfo userInfo = new UserInfo(username);
        ...
    }
    {
        ...
        session.setAttribute("boardname", userInfo);//コンパイルエラーになる 
    }

この場合、緑色の中カッコ { } 内でuserInfo変数を使用できない、というコンパイルエラーになります。このコンパイルエラーで、プログラムの記述ミスに気づきます。

boardname変数についても同様です。
boardname変数は、緑色の中カッコ { } 内だけで使用できます。
その他の場所で、記述ミスによって間違って使用されることはありません。

「正常処理の流れ」が右側に移動

ところで、このように中カッコを使った書き方の場合、正常処理の青線に影響を与えます。中カッコを使うことにより、「字下げをする」「中カッコの分だけ行数が増える」ことになるからです。

正常処理の青線が「字下げ」の分だけ右側に移動して、中カッコの分だけ長くなります。よって「正常処理の流れ」について、少しわかりにくくなります。
しかし、間違って変数を使用することを防げるので、プログラムの品質を良くすることに役立つと思います。

※この記事は、2003年6月当時の記事になります。

コンピューター
この記事をシェアする

グッズ・メモランダム