程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JBuilder2005實現重構之類繼承體系間

JBuilder2005實現重構之類繼承體系間

編輯:JAVA編程入門知識

  在JBuilder中通過重構將值域、方法在類的繼續體系中上推下移,是非常輕易的操作。這了說明這種重構功能,我們先來看下面的類繼續體系:
  
  
  圖 15 類的繼續類圖
  Animal類是Cat和Horse和父類,Animal中包含了兩個值域和一個方法。可以將Animal中的值域有選擇地下移到某個子類中。此外,還可以為Animal提煉超類和接口。
  
  1、搬遷方法
  
  打開Animal.Java並將光標定位到howl()方法處,通過Ctrl+Shift+R->Push Down Method調出下移方法對話框:
  
  
  圖 16 下移方法
  ·Method:下移的方法。
  
  ·Keep as abstract in current class:表示在下移方法的同時將類轉為抽象類。
  
  ·Selected subclasses:列出當前類的所有子類,默認情況下方法將下移到所有子類中,我們取消Cat,僅將howl()下移到Horse中。
  
  方法howl()中引用到Animal類的一個私有變量private int volume,在下移howl()後,該變量變為protected int volume。
  
  上推和下移是相反的操作,負責將子類中的方法推到父類中去。保存並重新編譯工程,打開Horse.java將光標置到howl()方法處:Ctrl+Shift+R->Pull Up Method調出上推的對話框:
  
  
  圖 17
  上推方法
  
  假如需上推的方法引用到了類中的其他方法,這些被引用的方法列在Select dependent members to moves列表中,一般情況下你需要將這些被引用的方法一起上移到父類中。
  
  面向對象的一個重要特性即是子類共享父類的代碼,所以當你發現子類的方法或值域是共享性的代碼時,你就需要著手將這些代碼推到父類中去了,這樣代碼的復用性將得到提升。
  
  2、搬遷值域
  
  Animal類中有兩個值域:
  
   1. protected int weight ;
  2. protected int volume = weight ;
  我們希望將volume下移到子類Cat中,光標定位到volume處:Ctrl+Shift+R>Push Down Field調出下移值域的對話框:
  
  
  圖 18 下移值域
  ·Field:需下移的值域。
  
  ·Select subclasses:當前類的子類。在默認情況下,值域下移到所有的子類中,可以通過子類前的復選框作出選擇,這裡我們去除Horse類前的勾選,即僅下移到Cat中。
  
  ·Select dependent members to move:和下移值域相關的所有值域,JBuilder通過下移值域右邊的賦值語句找出所有關聯的值域,通過關聯值域前的復選框決定是否需要一起下移到子類。默認情況下,JBuilder將關聯的屬性weight隨volume一起下移。
  
  按OK後完成下移。編譯工程,打開Horse.java,我們執行下移值域的反操作:上推值域到Animal類中。
  
  光標定位在Horse.java的volume值域處:Ctrl+Shift+R->Pull Up Field調出上推值域對話框,如下圖所示:
  
  
  圖 19
  上推值域
  
  點擊OK後,volume值域被上推到Horse父類Animal中。
  
  提示:
  
  遺憾的是,JBuilder上推值域並不會像下移值域一樣列出所有相關值域,只是簡單的將值域聲明代碼行上推到父類中。所以假如在值域的定義代碼行中引用了類中其它的值域,在上推到父為中時,將會發生語法錯誤,需要你手工解決。 QQread.com 推出各大專業服務器評測 Linux服務器的安全性能
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved