CodeZine(コードジン)

特集ページ一覧

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

第8回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

メソッドのプッシュダウン

 次に継承クラスでのリファクタリング機能の利用例として、プッシュダウン機能を説明します。プッシュダウンとは、スーパークラスのフィールドやメソッドをサブクラスに移動することで、メソッドを移動する場合、単純に移動する方法と、スーパークラスにそのメソッドのabstract宣言を残す方法の2通りがあります。今回は、先ほど作成したkyufukin()メソッドを用いて、後者を試してみましょう。

 パッケージ・エクスプローラーで[HelloStaff]クラスの[kyufukin()]を選択して[リファクタリング(T)]-[プッシュダウン(D)]を実行します。

図40:「kyufukin()」を選択して[リファクタリング]-[プッシュダウン]を実行
図40:「kyufukin()」を選択して[リファクタリング]-[プッシュダウン]を実行

 「プッシュダウン」ウィンドウが表示されますので、メンバー[kyufukin()]のチェックボックスがオンになっているのを確認します。アクションが「プッシュダウン」になっていますので、このまま実行するとメソッドがサブクラスに単純に移動してしまいます。そこで[アクションを設定(T)]をクリックします。

図41:確認して[アクションを設定]をクリック
図41:確認して[アクションを設定]をクリック

 「アクションの設定」ウィンドウが表示されますので、[選択したメンバーのアクション(A)]を[abstract宣言を残す]に変更してから[OK]をクリックします。

図42:[abstract宣言を残す]に変更して[OK]をクリック
図42:[abstract宣言を残す]に変更して[OK]をクリック

 「プッシュダウン」ウィンドウに戻りますので、メンバー[kyufukin()]のアクションが[abstract宣言を残す]になっているのを確認して[プレビュー(W)]をクリックします。

図43:確認して[プレビュー]をクリック
図43:確認して[プレビュー]をクリック

 プレビュー画面に切り替わります。まず今回の場合、プッシュダウンにより可視性の問題が起こることがわかります。よって、定数「TAGAKU」とクラス変数「age」の可視性を変更する必要があり、Eclipseは「privateからprotectedに変更しても良いか?」と、確認を求めているわけです。今回はそのとおりにするとして、[継続(T)]をクリックします。

図44:確認して[継続]をクリック
図44:確認して[継続]をクリック

 すると、実際の変更のプレビュー画面に切り替わります。今回の場合、スーパクラスとサブクラスのそれぞれに変更が加わるので、[実行される変更]で1つずつ確認しましょう。まず、サブクラスである「HelloEmp」には新たにkyuhukin()メソッドが追加されています。なお、スーパークラスに「abstract宣言を残す」としたので、オーバライドになります。

図45:サブクラスの変更を確認
図45:サブクラスの変更を確認

 次に、[実行される変更]でスーパークラスである「HelloStaff」をクリックします。すると、先ほど指摘があった定数の変数のprivateへの変更に加えて、HelloStaffクラスが抽象(abstract)クラスに定義変更されていることがわかります。これは、「abstract宣言を残す」とした為です。

図46:スーパークラスの前半の変更を確認
図46:スーパークラスの前半の変更を確認

 ソース表示をスクロールダウンして、スーパークラスの後半の変更を確認しましょう。「abstract宣言を残す」とした結果、kyofukin()メソッドが抽象メソッドに変更されています。確認できたら[OK]をクリックしてプッシュダウンを実行します。

図47:スーパークラスの後半の変更を確認して[OK]をクリック
図47:スーパークラスの後半の変更を確認して[OK]をクリック

 エディタービューに戻るので、プレビューの通りに2つのクラスが変更されていることを確認します。パッケージ・エクスプローラーにも変更が反映しています。

※注

 エディタービューのファイル名タグをウィンドウ下方向へドラックすることで、2つのエディタを上下に並べて開くことができます。

図48:2つのクラスが変更されていることを確認
図48:2つのクラスが変更されていることを確認

  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Eclipse 3.4からはじめるIDE入門

もっと読む

著者プロフィール

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

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5