SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Eclipse 3.4からはじめるIDE入門

Eclipse 3.4のコード生成&リファクタリング機能 ~Eclipse 3.4入門~

第8回

フィールド名の変更

 次に、単体クラスでのリファクタリング機能としてはクラス名の変更よりも複雑な、フィールド名の変更を試してみましょう。今回はGetterおよびSetter名に加えてコメントも自動変更させます。

 パッケージ・エクスプローラーで、フィールド名「ename」を選択して、クラス名の変更の場合と同様に、メニューの[リファクタリング(T)]-[名前変更(N)]を実行します。

図21:[リファクタリング]-[名前変更]を実行
図21:[リファクタリング]-[名前変更]を実行

 「フィールド名の変更」ウィンドウが表示されます。[新しい名前(M)]を入力し(今回は「name」とします)、[参照の更新(R)]だけではなく、[コメントおよびストリング内のテキスト出現箇所の更新(T)][getter 'getEname'を'getName'に名前変更(G)]と[setter 'setEname'を'setName'に名前変更(S)]のチェックもオンにしてから、[プレビュー(P)]をクリックします。

図22:[新しい名前]を入力し、[コメントおよびストリング内のテキスト出現箇所の更新][getter]と[setter]をオンにして[プレビュー]をクリック
図22:[新しい名前]を入力し[コメントおよびストリング内のテキスト出現箇所の更新][getter]と[setter]をオンにして[プレビュー]をクリック

 「実行される変更」とそのプレビューの画面に切り替わります。9カ所が変更されることを確認して[OK]をクリックします。

図23:確認して[OK]をクリック
図23:確認して[OK]をクリック

 エディタービューに戻ります。指定したとおり、フィールド名、GetterおよびSetter名、コメントが書き換わっていることを確認します。

※注

 ローカル変数は変更されませんので、コンストラクターおよびSetterの引数の「ename」はそのままになります。

図24:フィールド名、GetterおよびSetter名、コメントが書き換わっている
図24:フィールド名、GetterおよびSetter名、コメントが書き換わっている

マジックナンバーの定数への置き換え

 もう一つの単体クラスでのリファクタリング機能として、マジックナンバーの定数への置き換え機能を説明します。「マジックナンバー」とはプログラム中に直接記述された値のことで、その意味を明示しておかないと保守性が下がることがあります。特に同じ値が複数回用いられる場合、定数を設けて名前を与えることで保守性をキープします。この変更作業を試してみましょう。

 エディタービューに表示されている「HelloStaff.java」のソースプログラムの末尾に、下記のメソッド「int kyufukin()」を追記します。これは、年齢(age)に応じて定額給付金の額を返すもので、いくつかのマジックナンバーを持つメソッドになっています。

public int kyufukin() { //マジックナンバーのあるメソッド
    if(age <= 18) return 20000;
    else if(age < 65) return 12000;
    else return 20000;
}

 今回は2回登場しているマジックナンバー「20000」を定数にしてみましょう。エディタービュー上で「20000」を選択状態にします。

図25:マジックナンバーのあるメソッドを定義し「20000」を選択状態にする
図25:マジックナンバーのあるメソッドを定義し「20000」を選択状態にする

 準備ができたので、パッケージ・エクスプローラーで、メソッド[kyufukin()]が選択されているのを確認して、メニューの[リファクタリング(T)]-[定数の抽出(A)]を実行します。

図26:[リファクタリング(T)]-[定数の抽出(A)]を実行
図26:[リファクタリング(T)]-[定数の抽出(A)]を実行

 「定数の抽出」ウィンドウが表示されます。[定数名(C)]に仮に設定されている「_20000」を書き換え(今回は「TAGAKU」とします)、[選択された式のすべての出現箇所を定数への参照で置換(R)]のチェックをオンにします。シグニチャー・プレビューを確認してから[プレビュー(W)]をクリックします。

図27:[定数名]を書き換え、[選択された式のすべての出現箇所を定数への参照で置換]のチェックをオンにして[プレビュー]をクリック
図27:[定数名]を書き換え[選択された式のすべての出現箇所を定数への参照で置換]のチェックをオンにして[プレビュー]をクリック

 「実行される変更」とそのプレビューの画面に切り替わります。「実行される変更」のコンストラクター[HelloStaff(String,int)]をクリックすると、コンストラクターのすぐ上にシグニチャー・プレビューの通りの定数宣言が追加されることがわかります。

※注

 この画面で対応するチェックをオフにすることで、追加・置換する対象を絞ることもできます。

図28:コンストラクターのすぐ上に定数宣言が追加される
図28:コンストラクターのすぐ上に定数宣言が追加される
※注

 この画面の「実行される変更」の部分はOSなどの違いによって若干異なることがありますが、動作への影響はありません。

 次に「実行される変更」のメソッド[kyufukin()]をクリックすると、2つの「20000」が「TAGAKU」に置換されることがわかります。確認して[OK]をクリックします。

図29:確認して[OK]をクリック
図29:確認して[OK]をクリック

 エディタービューに戻ります。指定したとおり、マジックナンバー「20000」が定数「TAGAKU」に変更されていることを確認します。

図30:マジックナンバー「20000」が定数化されている
図30:マジックナンバー「20000」が定数化されている

次のページ
スーパークラスからのコンストラクターの生成

この記事は参考になりましたか?

Eclipse 3.4からはじめるIDE入門連載記事一覧

もっと読む

この記事の著者

平野正喜@ランドッグ・オーグ(ヒラノマサキ)

フリーのIT系執筆者&講使(※)の「ランドッグのマウ」こと平野正喜(HIRANO Masaki)です。【略歴】 1962年札幌市生まれ。今で言うIT企業のシステムエンジニア、プロジェクトリーダー、システムコンサルタント、採用担当などを経て独立し、2002年11月にランドッグ・オーグ平野正喜事務所(h...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3930 2009/06/17 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー