フィールド名の変更
次に、単体クラスでのリファクタリング機能としてはクラス名の変更よりも複雑な、フィールド名の変更を試してみましょう。今回はGetterおよびSetter名に加えてコメントも自動変更させます。
パッケージ・エクスプローラーで、フィールド名「ename」を選択して、クラス名の変更の場合と同様に、メニューの[リファクタリング(T)]-[名前変更(N)]を実行します。
![図21:[リファクタリング]-[名前変更]を実行](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-21s.gif)
「フィールド名の変更」ウィンドウが表示されます。[新しい名前(M)]を入力し(今回は「name」とします)、[参照の更新(R)]だけではなく、[コメントおよびストリング内のテキスト出現箇所の更新(T)][getter 'getEname'を'getName'に名前変更(G)]と[setter 'setEname'を'setName'に名前変更(S)]のチェックもオンにしてから、[プレビュー(P)]をクリックします。
「実行される変更」とそのプレビューの画面に切り替わります。9カ所が変更されることを確認して[OK]をクリックします。
エディタービューに戻ります。指定したとおり、フィールド名、GetterおよびSetter名、コメントが書き換わっていることを確認します。
ローカル変数は変更されませんので、コンストラクターおよびSetterの引数の「ename」はそのままになります。
マジックナンバーの定数への置き換え
もう一つの単体クラスでのリファクタリング機能として、マジックナンバーの定数への置き換え機能を説明します。「マジックナンバー」とはプログラム中に直接記述された値のことで、その意味を明示しておかないと保守性が下がることがあります。特に同じ値が複数回用いられる場合、定数を設けて名前を与えることで保守性をキープします。この変更作業を試してみましょう。
エディタービューに表示されている「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」を選択状態にします。
準備ができたので、パッケージ・エクスプローラーで、メソッド[kyufukin()]が選択されているのを確認して、メニューの[リファクタリング(T)]-[定数の抽出(A)]を実行します。
![図26:[リファクタリング(T)]-[定数の抽出(A)]を実行](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-26s.gif)
「定数の抽出」ウィンドウが表示されます。[定数名(C)]に仮に設定されている「_20000」を書き換え(今回は「TAGAKU」とします)、[選択された式のすべての出現箇所を定数への参照で置換(R)]のチェックをオンにします。シグニチャー・プレビューを確認してから[プレビュー(W)]をクリックします。
「実行される変更」とそのプレビューの画面に切り替わります。「実行される変更」のコンストラクター[HelloStaff(String,int)]をクリックすると、コンストラクターのすぐ上にシグニチャー・プレビューの通りの定数宣言が追加されることがわかります。
この画面で対応するチェックをオフにすることで、追加・置換する対象を絞ることもできます。
この画面の「実行される変更」の部分はOSなどの違いによって若干異なることがありますが、動作への影響はありません。
次に「実行される変更」のメソッド[kyufukin()]をクリックすると、2つの「20000」が「TAGAKU」に置換されることがわかります。確認して[OK]をクリックします。
エディタービューに戻ります。指定したとおり、マジックナンバー「20000」が定数「TAGAKU」に変更されていることを確認します。

![図22:[新しい名前]を入力し[コメントおよびストリング内のテキスト出現箇所の更新][getter]と[setter]をオンにして[プレビュー]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-22s.gif)
![図23:確認して[OK]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-23s.gif)


![図27:[定数名]を書き換え[選択された式のすべての出現箇所を定数への参照で置換]のチェックをオンにして[プレビュー]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-27s.gif)

![図29:確認して[OK]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/3930/8-29s.gif)
