国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

JBuilder2005實現(xiàn)重構(gòu)之重命名

2019-11-18 15:43:55
字體:
供稿:網(wǎng)友

  當(dāng)需要對包、類、方法、值域、局域變量等這些元素進行更名時,請不要通過Search->Replace...或者Search->Replace in path...菜單來進行,而應(yīng)該用重構(gòu)功能來完成。如前所述,因為在一個工程中,元素可能已經(jīng)有眾多的調(diào)用者,通過替換更名將很難保證定義和調(diào)用的同步更改,而重構(gòu)則從語義關(guān)聯(lián)上提供同時調(diào)整的保障。應(yīng)該說,有了重構(gòu),替換的功能在JBuilder將大大弱化。

  1、值域及變量重命名

  打開java文件,將光標置于某個值域或局域變量的代碼標識處,通過Ctrl+Shift+R->Rename Field調(diào)出重構(gòu)對話框:

JBuilder2005實現(xiàn)重構(gòu)之重命名(圖一)

圖 4 更名值域或局域變量的對話框
  ·Class:值域或局域變量所在的類

  ·Old name:原名

  ·New name:新名

  按OK,再點擊預(yù)覽窗口的 應(yīng)用重構(gòu),JBuilder將所有引用的定位的地方都一起同步更改。

  屬性重命名表 3

  屬性和值域的區(qū)別是前者具有一個get/set訪問方法,更改屬性變量名時,必須同步更改其相應(yīng)的get/set方法??上У氖窃诰庉嬈髦兄貥?gòu),你無法做到這一點,所幸的是,在UML瀏覽器中JBuilder卻答應(yīng)你進行這樣的重構(gòu)。

  假設(shè)Cat類有兩個屬性,一為age,一為name,現(xiàn)在希望將屬性name重構(gòu)為nickname。切換到Cat類的UML視圖頁,鼠標右擊name屬性,在彈出的菜單中選擇Rename PRoperty for name...,如下圖所示:

JBuilder2005實現(xiàn)重構(gòu)之重命名(圖二)
圖 5 屬性重命名重構(gòu)
  彈出屬性更名重構(gòu)對話框,如下圖所示:

JBuilder2005實現(xiàn)重構(gòu)之重命名(圖三)
圖 6 屬性重命名重構(gòu)對話框
  在New name中鍵入nickname,點擊OK按鈕完成重構(gòu)。JBuilder除完成屬性定義和引用的更名外,還完成屬性訪問方法名的重構(gòu):getName()->getNickname(),setName(String name)->setNickname(String name),并更改引用這兩個方法的所有調(diào)用。

  2、方法重命名

  將光標移到方法名處,Ctrl+Shift+R->Rename Method調(diào)出方法名更名重構(gòu)對話框如圖所示:

JBuilder2005實現(xiàn)重構(gòu)之重命名(圖四)
圖 7 方法重構(gòu)對話框
  提示:

  假如一個方法的定位代碼為:public String cry(){/**do sth*/},需要將光標放到方法名cry處,才可以調(diào)出方法名重構(gòu)對話框。


  對話框中有兩個選項:

  ·Refactor ancestors:勾選這個選項時,假如當(dāng)前方法是父類方法的覆蓋方法,或接口的實現(xiàn)方法,則父類方法或接口方法一并更改。

  ·Create fowwarding method:在Refactor ancestors選項取消勾選時,這個選項才可用,當(dāng)選擇這個選項時,將產(chǎn)生的一個為保持版本兼容性的轉(zhuǎn)接調(diào)用方法,如你將public void foo()方法更名為public void foo_1()方法,該選項在重構(gòu)的方法后產(chǎn)生一個轉(zhuǎn)接調(diào)用的方法:

public void foo_1(){/**do sth*/}//更名的方法

public void foo(){foo_1();}//轉(zhuǎn)接調(diào)用的方法

  假如這個類已經(jīng)發(fā)布,通過這個選項,即可以保證代碼的重構(gòu),又可以保證版本的兼容。

  需要指出的是,方法更名重構(gòu)只會對方法聲明及所有調(diào)用同步更改,方法的重載方法并不會相應(yīng)更改,所以假如一個方法有3個重載方法,需要執(zhí)行3次方法更名重構(gòu)。進入討論組討論。

  3、方法參數(shù)更改

  方法參數(shù)的更改,包括以下內(nèi)容:

  ·新增一個入?yún)ⅰ?br />
  ·刪除某個無用的入?yún)ⅰ?br />
  ·調(diào)整文件參數(shù)的次序。

  下面是myrafactor.Horse類的getAccountPrice()方法:



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 十堰市| 色达县| 南昌市| 哈尔滨市| 密山市| 竹北市| 建阳市| 大化| 金秀| 河源市| 弥勒县| 佛坪县| 武山县| 江城| 青神县| 应城市| 大余县| 麻阳| 左权县| 利川市| 洞头县| 海丰县| 梅州市| 伊宁县| 保定市| 乌兰浩特市| 安溪县| 临清市| 内乡县| 修武县| 岳西县| 突泉县| 含山县| 蒙城县| 信宜市| 德令哈市| 高淳县| 锦州市| 凤山市| 舟曲县| 舟曲县|