第4章高級(jí)Java開發(fā)技術(shù) Eclipse從入門到精通-教學(xué)ppt課件_第1頁(yè)
第4章高級(jí)Java開發(fā)技術(shù) Eclipse從入門到精通-教學(xué)ppt課件_第2頁(yè)
第4章高級(jí)Java開發(fā)技術(shù) Eclipse從入門到精通-教學(xué)ppt課件_第3頁(yè)
第4章高級(jí)Java開發(fā)技術(shù) Eclipse從入門到精通-教學(xué)ppt課件_第4頁(yè)
第4章高級(jí)Java開發(fā)技術(shù) Eclipse從入門到精通-教學(xué)ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第第4 4章章 高級(jí)高級(jí)JavaJava開發(fā)技術(shù)開發(fā)技術(shù)在上一章,學(xué)習(xí)了在上一章,學(xué)習(xí)了Eclipse JDT的基本應(yīng)用。這些基本的基本應(yīng)用。這些基本的應(yīng)用基本上是集中在編輯器的使用上。這一章,將學(xué)習(xí)更的應(yīng)用基本上是集中在編輯器的使用上。這一章,將學(xué)習(xí)更多的高級(jí)功能。這些高級(jí)功能包括:項(xiàng)目的構(gòu)建,項(xiàng)目的運(yùn)多的高級(jí)功能。這些高級(jí)功能包括:項(xiàng)目的構(gòu)建,項(xiàng)目的運(yùn)行和測(cè)試,行和測(cè)試,JUnit的應(yīng)用,代碼的重構(gòu),以及的應(yīng)用,代碼的重構(gòu),以及Eclipse所提供所提供的其他輔助開發(fā)功能。的其他輔助開發(fā)功能。 4.1 4.1 構(gòu)建和運(yùn)行構(gòu)建和運(yùn)行繼續(xù)上章的繼續(xù)上章的HelloPDE項(xiàng)目。編輯完上面項(xiàng)目。編

2、輯完上面HelloPDE的的代碼后,需要測(cè)試運(yùn)行。在測(cè)試運(yùn)行代碼后,需要測(cè)試運(yùn)行。在測(cè)試運(yùn)行HelloPDE之前,需要之前,需要把把Java源代碼進(jìn)行編譯和構(gòu)建。編譯源代碼進(jìn)行編譯和構(gòu)建。編譯(Compile),就是使用,就是使用JDK提供的編譯器,把提供的編譯器,把Java代碼編譯成目標(biāo)字節(jié)代碼,這代碼編譯成目標(biāo)字節(jié)代碼,這只是第一步,這一步在是只是第一步,這一步在是JDT是自動(dòng)完成的,每次修改保存是自動(dòng)完成的,每次修改保存源代碼,都會(huì)自動(dòng)編譯。第二步是構(gòu)建源代碼,都會(huì)自動(dòng)編譯。第二步是構(gòu)建(Build),在編譯的基,在編譯的基礎(chǔ)上,把目標(biāo)代碼和其他資源文件集成為可以執(zhí)行的程序。礎(chǔ)上,把目標(biāo)

3、代碼和其他資源文件集成為可以執(zhí)行的程序。下面進(jìn)一步了解一下下面進(jìn)一步了解一下JDT中的構(gòu)建中的構(gòu)建Build功能。功能。4.1.1 4.1.1 自動(dòng)構(gòu)建自動(dòng)構(gòu)建JDT提供了兩種構(gòu)建的方式,一種是自動(dòng)構(gòu)建,這是默提供了兩種構(gòu)建的方式,一種是自動(dòng)構(gòu)建,這是默認(rèn)的方式。自動(dòng)構(gòu)建不需要用戶干預(yù),認(rèn)的方式。自動(dòng)構(gòu)建不需要用戶干預(yù),JDT會(huì)自動(dòng)判斷何時(shí)會(huì)自動(dòng)判斷何時(shí)應(yīng)該構(gòu)建。構(gòu)建過程包括了源代碼的編譯和資源文件的構(gòu)建應(yīng)該構(gòu)建。構(gòu)建過程包括了源代碼的編譯和資源文件的構(gòu)建。而且。而且JDT采用的是增量式構(gòu)建,每次只是構(gòu)建需要的部分采用的是增量式構(gòu)建,每次只是構(gòu)建需要的部分,不用完全構(gòu)建整個(gè)項(xiàng)目,又是在后臺(tái)用線

4、程的方式進(jìn)行構(gòu),不用完全構(gòu)建整個(gè)項(xiàng)目,又是在后臺(tái)用線程的方式進(jìn)行構(gòu)建,所以對(duì)于一般項(xiàng)目來說,基本上覺察不到構(gòu)建的過程。建,所以對(duì)于一般項(xiàng)目來說,基本上覺察不到構(gòu)建的過程。大多數(shù)情況下,使用自動(dòng)構(gòu)建已經(jīng)非常理想。大多數(shù)情況下,使用自動(dòng)構(gòu)建已經(jīng)非常理想。4.1.2 4.1.2 手動(dòng)構(gòu)建手動(dòng)構(gòu)建并不是所有人都喜歡自動(dòng)構(gòu)建,有時(shí)候自動(dòng)構(gòu)建的線并不是所有人都喜歡自動(dòng)構(gòu)建,有時(shí)候自動(dòng)構(gòu)建的線程可能會(huì)影響一下前臺(tái)的操作。另外程可能會(huì)影響一下前臺(tái)的操作。另外JDT的增量式構(gòu)建有時(shí)的增量式構(gòu)建有時(shí)候也會(huì)出現(xiàn)一些小問題。還有一種情況也會(huì)導(dǎo)致有些人不喜候也會(huì)出現(xiàn)一些小問題。還有一種情況也會(huì)導(dǎo)致有些人不喜歡自動(dòng)構(gòu)建。

5、歡自動(dòng)構(gòu)建。源代碼很多的時(shí)候,源代碼中可能有很多等待排除的源代碼很多的時(shí)候,源代碼中可能有很多等待排除的錯(cuò)誤。自動(dòng)構(gòu)建后,這些錯(cuò)誤會(huì)顯示出來,在錯(cuò)誤。自動(dòng)構(gòu)建后,這些錯(cuò)誤會(huì)顯示出來,在Package Explorer中出現(xiàn)大量的紅色叉叉,非常中出現(xiàn)大量的紅色叉叉,非?!半y看難看”。有些用戶。有些用戶喜歡自己排除了錯(cuò)誤后再自動(dòng)構(gòu)建。喜歡自己排除了錯(cuò)誤后再自動(dòng)構(gòu)建。要取消自動(dòng)構(gòu)建也很簡(jiǎn)單,選擇菜單要取消自動(dòng)構(gòu)建也很簡(jiǎn)單,選擇菜單Project,把,把Build Automatically前面的勾去掉就可以了。前面的勾去掉就可以了。4.1.3 4.1.3 運(yùn)行和調(diào)試運(yùn)行和調(diào)試下面運(yùn)行一下下面運(yùn)行一下

6、HelloPDE。點(diǎn)擊工具欄上。點(diǎn)擊工具欄上Run按鈕的下按鈕的下拉箭頭,在下拉菜單中選擇拉箭頭,在下拉菜單中選擇Run as-Java Application。4.1.4 4.1.4 設(shè)置調(diào)試斷點(diǎn)設(shè)置調(diào)試斷點(diǎn)設(shè)置斷點(diǎn)很簡(jiǎn)單,在設(shè)置斷點(diǎn)很簡(jiǎn)單,在Java編輯器左側(cè)的信息欄上雙擊編輯器左側(cè)的信息欄上雙擊,就可以設(shè)置斷點(diǎn)。,就可以設(shè)置斷點(diǎn)。4.1.5 4.1.5 調(diào)試透視圖調(diào)試透視圖設(shè)置斷點(diǎn)后,按工具欄上的設(shè)置斷點(diǎn)后,按工具欄上的Debug按鈕。因?yàn)楫?dāng)前編按鈕。因?yàn)楫?dāng)前編輯的代碼已經(jīng)運(yùn)行過一次,只要運(yùn)行過的代碼仍然處于編輯輯的代碼已經(jīng)運(yùn)行過一次,只要運(yùn)行過的代碼仍然處于編輯狀態(tài),按一下狀態(tài),按一下

7、Debug按鈕,默認(rèn)就是根據(jù)上一次的運(yùn)行或者按鈕,默認(rèn)就是根據(jù)上一次的運(yùn)行或者調(diào)試設(shè)置執(zhí)行當(dāng)前的代碼程序。調(diào)試設(shè)置執(zhí)行當(dāng)前的代碼程序。4.2 4.2 使用使用JUnitJUnit在軟件開發(fā)過程中,除了調(diào)試之外,還需要進(jìn)行測(cè)試在軟件開發(fā)過程中,除了調(diào)試之外,還需要進(jìn)行測(cè)試。調(diào)試和測(cè)試是不同的概念,調(diào)試是對(duì)成品進(jìn)行試運(yùn)行,而。調(diào)試和測(cè)試是不同的概念,調(diào)試是對(duì)成品進(jìn)行試運(yùn)行,而測(cè)試則是在組裝成成品之前,利用一些工具,參照某些標(biāo)準(zhǔn)測(cè)試則是在組裝成成品之前,利用一些工具,參照某些標(biāo)準(zhǔn),對(duì)零部件進(jìn)行檢測(cè)。在,對(duì)零部件進(jìn)行檢測(cè)。在Java開發(fā)中,使用率最高的測(cè)試開發(fā)中,使用率最高的測(cè)試工具是工具是JUnit

8、。4.2.1 JUnit4.2.1 JUnit簡(jiǎn)介簡(jiǎn)介JUnit是由是由 Erich Gamma 和和 Kent Beck 編寫的一個(gè)回編寫的一個(gè)回歸測(cè)試框架歸測(cè)試框架regression testing framework),供供Java開發(fā)開發(fā)人員編寫單元測(cè)試之用。人員編寫單元測(cè)試之用。JUnit測(cè)試是程序員測(cè)試,即所謂白盒測(cè)試,因?yàn)槌绦騿T測(cè)試是程序員測(cè)試,即所謂白盒測(cè)試,因?yàn)槌绦騿T知道被測(cè)試的軟件如何知道被測(cè)試的軟件如何How完成功能和完成什么樣完成功能和完成什么樣What的功能。的功能。JUnit本質(zhì)上是一套框架,即開發(fā)者制定了本質(zhì)上是一套框架,即開發(fā)者制定了一套條條框框,遵循這此條條

9、框框要求編寫測(cè)試代碼,如繼一套條條框框,遵循這此條條框框要求編寫測(cè)試代碼,如繼承某個(gè)類,實(shí)現(xiàn)某個(gè)接口,就可以用承某個(gè)類,實(shí)現(xiàn)某個(gè)接口,就可以用JUnit進(jìn)行自動(dòng)測(cè)試了。進(jìn)行自動(dòng)測(cè)試了。由于由于JUnit相對(duì)獨(dú)立于所編寫的代碼,可以測(cè)試代碼的編相對(duì)獨(dú)立于所編寫的代碼,可以測(cè)試代碼的編寫可以先于實(shí)現(xiàn)代碼的編寫,寫可以先于實(shí)現(xiàn)代碼的編寫,“極限開發(fā)極限開發(fā)中推崇的中推崇的“test first design的實(shí)現(xiàn)有了現(xiàn)成的手段:用的實(shí)現(xiàn)有了現(xiàn)成的手段:用JUnit寫測(cè)試代碼寫測(cè)試代碼,寫實(shí)現(xiàn)代碼,運(yùn)行測(cè)試,測(cè)試失敗,修改實(shí)現(xiàn)代碼,再運(yùn),寫實(shí)現(xiàn)代碼,運(yùn)行測(cè)試,測(cè)試失敗,修改實(shí)現(xiàn)代碼,再運(yùn)行測(cè)試,直到測(cè)

10、試成功。以后對(duì)代碼的修改和優(yōu)化,運(yùn)行測(cè)行測(cè)試,直到測(cè)試成功。以后對(duì)代碼的修改和優(yōu)化,運(yùn)行測(cè)試成功,則修改成功。試成功,則修改成功。4.2.2 JUnit4.2.2 JUnit和和EclipseEclipse的關(guān)系的關(guān)系前面提到了前面提到了JUnit的作者的作者Erich Gamma,他同時(shí)還負(fù)責(zé),他同時(shí)還負(fù)責(zé)了了Eclipse的開發(fā),包括的開發(fā),包括JFace的開發(fā)和的開發(fā)和JDT中一些工具的中一些工具的開發(fā)。開發(fā)。Kent Beck則是極限開發(fā)的倡導(dǎo)者,則是極限開發(fā)的倡導(dǎo)者,Eclipse中的不中的不少開發(fā)工具都體現(xiàn)了極限開發(fā)的思想。少開發(fā)工具都體現(xiàn)了極限開發(fā)的思想。Erich Gamma和

11、和Kent Beck在在Eclipse項(xiàng)目的早期,寫了多本關(guān)于項(xiàng)目的早期,寫了多本關(guān)于Eclipse的的圖書,推動(dòng)了圖書,推動(dòng)了Eclipse的普及。的普及。Eclipse具有一個(gè)具有一個(gè)JUnit插件,這個(gè)插件已經(jīng)包含在插件,這個(gè)插件已經(jīng)包含在JDT中,實(shí)現(xiàn)了中,實(shí)現(xiàn)了JUnit的的GUI界面。這個(gè)界面由界面。這個(gè)界面由JUnit視圖實(shí)現(xiàn)。視圖實(shí)現(xiàn)。4.2.3 4.2.3 準(zhǔn)備要測(cè)試的類準(zhǔn)備要測(cè)試的類如何用好如何用好JUnit也是一門學(xué)問,本書的主題是也是一門學(xué)問,本書的主題是Eclipse插件的開發(fā),所以不在此詳細(xì)討論插件的開發(fā),所以不在此詳細(xì)討論JUnit的技巧。本節(jié)的例的技巧。本節(jié)的例

12、子是演示一下子是演示一下Eclipse中如何應(yīng)用中如何應(yīng)用JUnit。這個(gè)例子也是取自。這個(gè)例子也是取自JUnit介紹的一個(gè)經(jīng)典例子。在前面建立的項(xiàng)目介紹的一個(gè)經(jīng)典例子。在前面建立的項(xiàng)目hello.pde中中新建一個(gè)包新建一個(gè)包hello.junit。在這個(gè)包中建立一個(gè)新的類。在這個(gè)包中建立一個(gè)新的類Money。4.2.4 4.2.4 為測(cè)試另外建立源代碼文件夾為測(cè)試另外建立源代碼文件夾下面這個(gè)步驟屬于個(gè)人的編程習(xí)慣。通常用于測(cè)試的下面這個(gè)步驟屬于個(gè)人的編程習(xí)慣。通常用于測(cè)試的代碼是不隨最終產(chǎn)品發(fā)布的,所以為了管理上的方便,把測(cè)代碼是不隨最終產(chǎn)品發(fā)布的,所以為了管理上的方便,把測(cè)試代碼保存到另

13、外一個(gè)源代碼文件夾中。試代碼保存到另外一個(gè)源代碼文件夾中。4.2.5 4.2.5 新建單元測(cè)試新建單元測(cè)試建立好保存測(cè)試源代碼的文件夾后,就可以開始建立建立好保存測(cè)試源代碼的文件夾后,就可以開始建立單元測(cè)試了。一個(gè)單元測(cè)試用例是一個(gè)類。往往對(duì)應(yīng)一個(gè)特單元測(cè)試了。一個(gè)單元測(cè)試用例是一個(gè)類。往往對(duì)應(yīng)一個(gè)特定的待測(cè)類。在定的待測(cè)類。在JDT中建立單元測(cè)試是非常簡(jiǎn)單的。中建立單元測(cè)試是非常簡(jiǎn)單的。4.2.6 4.2.6 輸入測(cè)試代碼輸入測(cè)試代碼下面試著寫一段測(cè)試代碼。如下面代碼那樣,修改下面試著寫一段測(cè)試代碼。如下面代碼那樣,修改testAdd()方法,加入測(cè)試的代碼。測(cè)試的過程是:先建立方法,加入測(cè)

14、試的代碼。測(cè)試的過程是:先建立兩個(gè)兩個(gè)Money對(duì)象,分別是對(duì)象,分別是m12CHF、m14CHF。m12CHF的數(shù)值是的數(shù)值是12,m14CHF的數(shù)值是的數(shù)值是14。然后調(diào)用。然后調(diào)用m12CHF的的add方法,與方法,與m14CHF相加,得出一個(gè)新的相加,得出一個(gè)新的Money對(duì)象對(duì)象result。最后用。最后用assertTrue方法,驗(yàn)證得出的方法,驗(yàn)證得出的result的值是的值是否與預(yù)期的否與預(yù)期的expected對(duì)象的值相等。對(duì)象的值相等。4.2.6 4.2.6 輸入測(cè)試代碼輸入測(cè)試代碼4.2.7 4.2.7 運(yùn)行單元測(cè)試運(yùn)行單元測(cè)試修改完成后,就可以試一下運(yùn)行測(cè)試用例了。運(yùn)行測(cè)

15、修改完成后,就可以試一下運(yùn)行測(cè)試用例了。運(yùn)行測(cè)試用例也是試用例也是Run命令,通過工具欄上的命令,通過工具欄上的Run按鈕執(zhí)行。按鈕執(zhí)行。4.2.8 4.2.8 查看單元測(cè)試的結(jié)果查看單元測(cè)試的結(jié)果單元測(cè)試一旦執(zhí)行,測(cè)試的結(jié)果就可以在單元測(cè)試一旦執(zhí)行,測(cè)試的結(jié)果就可以在JUnit視圖上視圖上清晰地展現(xiàn)出來。清晰地展現(xiàn)出來。4.3 4.3 代碼重構(gòu)功能代碼重構(gòu)功能“好的文章是改出來的好的文章是改出來的”,同樣,同樣“好的軟件也是改出來好的軟件也是改出來的的”。軟件開發(fā)是一個(gè)不斷探索、不斷嘗試的過程,軟件中。軟件開發(fā)是一個(gè)不斷探索、不斷嘗試的過程,軟件中不完善的地方經(jīng)常需要進(jìn)行重構(gòu)調(diào)整。不完善的地

16、方經(jīng)常需要進(jìn)行重構(gòu)調(diào)整。Eclipse為軟件代碼為軟件代碼的重構(gòu)提供了大量便捷的功能。包括有:重命名、抽取方法的重構(gòu)提供了大量便捷的功能。包括有:重命名、抽取方法、挪動(dòng)、內(nèi)聯(lián)功能、更改方法特征符等代碼結(jié)構(gòu)級(jí)別的重構(gòu)、挪動(dòng)、內(nèi)聯(lián)功能、更改方法特征符等代碼結(jié)構(gòu)級(jí)別的重構(gòu)。下面就來學(xué)習(xí)一下如何使用。下面就來學(xué)習(xí)一下如何使用Eclipse提供的這些功能快速提供的這些功能快速地修改軟件代碼。地修改軟件代碼。4.3.1 Eclipse4.3.1 Eclipse中的重構(gòu)類型中的重構(gòu)類型選擇源代碼后,可以看到選擇源代碼后,可以看到Eclipse的菜單欄出現(xiàn)了的菜單欄出現(xiàn)了Refactor的子菜單,展開的子菜單

17、,展開Refactor菜單,是菜單各個(gè)命令的菜單,是菜單各個(gè)命令的說明。在源代碼的編輯器中,按鼠標(biāo)右鍵,彈出的快捷菜單說明。在源代碼的編輯器中,按鼠標(biāo)右鍵,彈出的快捷菜單也可以找到也可以找到Refactor的子菜單項(xiàng),的子菜單項(xiàng),Refactor子菜單中的命令子菜單中的命令會(huì)根據(jù)當(dāng)前所選的對(duì)象變化,僅顯示可用的操作。會(huì)根據(jù)當(dāng)前所選的對(duì)象變化,僅顯示可用的操作。通過通過Refactor的子菜單項(xiàng),可以看到的子菜單項(xiàng),可以看到Eclipse 的重構(gòu)工的重構(gòu)工具可以分為三大類:具可以分為三大類:對(duì)代碼進(jìn)行重命名以及改變代碼的物理結(jié)構(gòu),包括對(duì)對(duì)代碼進(jìn)行重命名以及改變代碼的物理結(jié)構(gòu),包括對(duì)屬性、變量、類

18、以及接口重新命名,還有移動(dòng)包和類等。屬性、變量、類以及接口重新命名,還有移動(dòng)包和類等。改變類一級(jí)的代碼邏輯結(jié)構(gòu),包括將匿名類轉(zhuǎn)變?yōu)榍陡淖冾愐患?jí)的代碼邏輯結(jié)構(gòu),包括將匿名類轉(zhuǎn)變?yōu)榍短最?,將嵌套類轉(zhuǎn)變?yōu)轫敿?jí)類、根據(jù)具體的類創(chuàng)建接口,以套類,將嵌套類轉(zhuǎn)變?yōu)轫敿?jí)類、根據(jù)具體的類創(chuàng)建接口,以及從一個(gè)類中將方法或者屬性移到子類或者父類中。及從一個(gè)類中將方法或者屬性移到子類或者父類中。4.3.2 4.3.2 類重命名類重命名類的重命名不是簡(jiǎn)單地修改文件名或者類的名稱就可類的重命名不是簡(jiǎn)單地修改文件名或者類的名稱就可以了,類的名稱一旦修改,其他關(guān)聯(lián)了或者應(yīng)用了這個(gè)類的以了,類的名稱一旦修改,其他關(guān)聯(lián)了或者應(yīng)用

19、了這個(gè)類的代碼也要作相應(yīng)修改。代碼也要作相應(yīng)修改。Eclipse提供的重構(gòu)功能可以自動(dòng)幫提供的重構(gòu)功能可以自動(dòng)幫你完成這些修改工作。你完成這些修改工作。首先選擇要修改的類,然后選擇菜單首先選擇要修改的類,然后選擇菜單Refactor-Rename,或者按右鍵,彈出快捷菜單,選擇,或者按右鍵,彈出快捷菜單,選擇Refactor-Rename。4.3.3 4.3.3 包重命名包重命名包的重命名和修改類名的操作一樣,也是先選擇要修包的重命名和修改類名的操作一樣,也是先選擇要修改的包,然后選擇菜單改的包,然后選擇菜單Refactor-Rename。4.3.4 4.3.4 類屬性和方法重命名類屬性和方法

20、重命名修改屬性名或者方法名可以直接在修改屬性名或者方法名可以直接在Java 源代碼編輯器源代碼編輯器中執(zhí)行。把光標(biāo)定位在屬性變量名上,按鼠標(biāo)右鍵,彈出快中執(zhí)行。把光標(biāo)定位在屬性變量名上,按鼠標(biāo)右鍵,彈出快捷菜單,選擇捷菜單,選擇Refactor-name。4.3.4 4.3.4 類屬性和方法重命名類屬性和方法重命名4.3.5 4.3.5 移動(dòng)類的位置移動(dòng)類的位置移動(dòng)類的位置主要是把某個(gè)類移動(dòng)到另外一個(gè)包上,移動(dòng)類的位置主要是把某個(gè)類移動(dòng)到另外一個(gè)包上,相當(dāng)于修改類的包。要移動(dòng)類,把類拖拉到目標(biāo)的包就可以相當(dāng)于修改類的包。要移動(dòng)類,把類拖拉到目標(biāo)的包就可以了。了。4.3.6 4.3.6 抽取抽象

21、類和接口抽取抽象類和接口首先選擇要修改的類,然后選擇菜單首先選擇要修改的類,然后選擇菜單Refactor- Extract Interface,或者按右鍵,彈出快捷菜單,選擇,或者按右鍵,彈出快捷菜單,選擇Refactor-Extract Interface。4.3.7 4.3.7 遷移屬性或方法到父類遷移屬性或方法到父類在在MoneyImplement類中添加一個(gè)方法類中添加一個(gè)方法getName()。當(dāng)。當(dāng)然這個(gè)方法沒有什么特別的意義,在這里只是為了遷移方法然這個(gè)方法沒有什么特別的意義,在這里只是為了遷移方法到父類的功能。到父類的功能。public String getName()retu

22、rn ;4.3.8 4.3.8 提取匿名類提取匿名類在程序開發(fā)初期,為了開發(fā)方便,經(jīng)常會(huì)使用匿名類。在程序開發(fā)初期,為了開發(fā)方便,經(jīng)常會(huì)使用匿名類。隨著程序的修改,要求的功能增強(qiáng),匿名類中的代碼可能隨隨著程序的修改,要求的功能增強(qiáng),匿名類中的代碼可能隨之增多;或者某個(gè)匿名類中的功能需要做成可重用的類。這之增多;或者某個(gè)匿名類中的功能需要做成可重用的類。這時(shí)候就可以考慮把匿名類提取出來,建立成獨(dú)立的類了。時(shí)候就可以考慮把匿名類提取出來,建立成獨(dú)立的類了。4.3.9 4.3.9 把內(nèi)建類變成頂級(jí)類把內(nèi)建類變成頂級(jí)類JDT可以識(shí)別匿名類所需要的變量或者屬性,建立內(nèi)建可以識(shí)別匿名類所需要的變量或者屬性

23、,建立內(nèi)建類的時(shí)候,會(huì)建立對(duì)應(yīng)的構(gòu)造方法。但是這里需要的不是一類的時(shí)候,會(huì)建立對(duì)應(yīng)的構(gòu)造方法。但是這里需要的不是一個(gè)內(nèi)建類,而是一個(gè)獨(dú)立的頂級(jí)類。那么就可以在建立了內(nèi)個(gè)內(nèi)建類,而是一個(gè)獨(dú)立的頂級(jí)類。那么就可以在建立了內(nèi)建類的基礎(chǔ)上再進(jìn)一步,把內(nèi)建類變成頂級(jí)類。建類的基礎(chǔ)上再進(jìn)一步,把內(nèi)建類變成頂級(jí)類。4.4 4.4 高級(jí)輔助功能高級(jí)輔助功能Eclipse JDT還提供了豐富的輔助功能提升編寫代碼的還提供了豐富的輔助功能提升編寫代碼的效率,前面接觸過一些:像優(yōu)化包的導(dǎo)入、代碼美化、代碼效率,前面接觸過一些:像優(yōu)化包的導(dǎo)入、代碼美化、代碼提示、自動(dòng)補(bǔ)全等等。下面將學(xué)習(xí)更高級(jí)的輔助功能:包括提示、自

24、動(dòng)補(bǔ)全等等。下面將學(xué)習(xí)更高級(jí)的輔助功能:包括方法的重載輔助、建立方法的重載輔助、建立getter、setter、建立委派模式、對(duì)、建立委派模式、對(duì)類的成員進(jìn)行排序等等。類的成員進(jìn)行排序等等。4.4.1 JDT4.4.1 JDT提供的源代碼輔助功能提供的源代碼輔助功能JDT提供的源代碼輔助功能基本上位于菜單提供的源代碼輔助功能基本上位于菜單Source中中,大概可以分成下面幾類:,大概可以分成下面幾類:注釋的管理,包括:自動(dòng)建立注釋,添加注釋,刪除注釋的管理,包括:自動(dòng)建立注釋,添加注釋,刪除注釋,添加塊注釋。注釋,添加塊注釋。代碼的格式化,最常用的就是對(duì)整篇代碼重新整理。代碼的格式化,最常用的

25、就是對(duì)整篇代碼重新整理。對(duì)對(duì)Import的管理,自動(dòng)加入的管理,自動(dòng)加入Import,整理,整理Import等等等等。承繼、重載相關(guān)的源代碼輔助功能。承繼、重載相關(guān)的源代碼輔助功能。塊代碼的輔助,加入塊代碼的輔助,加入try catch建立異常捕捉。建立異常捕捉。建立文本的國(guó)際化。建立文本的國(guó)際化。4.4.2 4.4.2 方法重載輔助方法重載輔助在面向?qū)ο箝_發(fā)中,重載方法是經(jīng)常需要做的工作。在面向?qū)ο箝_發(fā)中,重載方法是經(jīng)常需要做的工作。JDT提供了重載的向?qū)?,可以更方便快捷地?shí)現(xiàn)重載。在前提供了重載的向?qū)?,可以更方便快捷地?shí)現(xiàn)重載。在前面面Money2的基礎(chǔ)上,重載父類的基礎(chǔ)上,重載父類Mon

26、eyImplement的幾個(gè)方的幾個(gè)方法。法。4.4.3 4.4.3 生成生成gettergetter和和settersetter根據(jù)根據(jù)JavaBean的規(guī)范,類中的屬性通常都是一個(gè)私有的規(guī)范,類中的屬性通常都是一個(gè)私有的字段變量,對(duì)應(yīng)有的字段變量,對(duì)應(yīng)有g(shù)etter方法和方法和setter方法。如果是方法。如果是“只只讀讀屬性,那么只有屬性,那么只有g(shù)etter方法,沒有方法,沒有setter方法;如果是方法;如果是“只寫只寫屬性,只有屬性,只有setter方法,沒有方法,沒有g(shù)etter方法。方法。JDT也提供了輔助功能,可以快速地建立也提供了輔助功能,可以快速地建立getter、set

27、ter方法。按照下面的代碼,在方法。按照下面的代碼,在Money2中加入幾個(gè)字段中加入幾個(gè)字段變量。變量。public class Money2 extends MoneyImplement private String country ;private String bank ;private boolean enable =false;4.4.4 4.4.4 建立委派模式建立委派模式DelegateDelegate)委派模式委派模式(Delegate)是面向?qū)ο笤O(shè)計(jì)模式中常用的一種是面向?qū)ο笤O(shè)計(jì)模式中常用的一種模式。這種模式的原理是類模式。這種模式的原理是類B和類和類A是兩個(gè)互相沒有任何是兩個(gè)互相沒有任何“血緣血緣關(guān)系的類,關(guān)系的類,B具和具和A一模一樣的方法或者屬性;并且一模一樣的方法或者屬性;并且B中的方法、屬性就是調(diào)用中的方法、屬性就是調(diào)用A的同名方法或者屬性。的同名方法或者屬性。B就好就好像是一個(gè)受像是一個(gè)受A授權(quán)委托的中介。第三方的代碼不需要知道授權(quán)委托的中介。第三方的代碼不需要知道A的存在,也不需要和的存在,也不需要和A直接關(guān)聯(lián),通過直接關(guān)聯(lián),通過B就可以使用到就可以使用到A的的功能。功能。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論