資源描述:
《Java與Groovy的比較》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、通過(guò)與Java比較迅速掌握Groovy Groovy和Java的相同點(diǎn)有: 3+,4+,6+,8+,10+,12+,13,14,15,18+,20+,21,22,23,28+,29+,30+,31+,32+ +表示Groovy不但涵蓋了Java的語(yǔ)法,而且還有增強(qiáng)部分 Groovy和Java的不同點(diǎn)有: 0,1,2,5,7,9,11,16,17,19,24,25,26,27 下面所列序號(hào)不分先后順序: 0.在Groovy可以用def定義無(wú)類型的變量(定義變量方面def與JavaScript中的var相似),和返回值為無(wú)類型的方法,而在Java中沒(méi)有def
2、 Groovy: classMan{ defname="山風(fēng)小子" defintroduce(){ return"I'm$name"http://return可以省略 } } 1.Java中的equals方法對(duì)應(yīng)Groovy中的==,而Java中的==(判斷是否引用同一對(duì)象)對(duì)應(yīng)Groovy中的is方法 eg. Test1.java: publicclassTest{ publicstaticvoidmain(String[]args){ Stringname1="山風(fēng)小子"; Stringname2=newString("山風(fēng)小子"); //Gr
3、oovy中寫為name1==name2 if(name1.equals(name2)){ System.out.println("equal"); }else{ System.out.println("notequal"); } //Groovy中寫為name1.is(name2) if(name1==name2){ System.out.println("identical"); }else{ System.out.println("notidentical"); } } 與Test1.java相對(duì)應(yīng)的 Test1.groovy: St
4、ringname1="山風(fēng)小子"http://你也可以這樣寫:defname1="山風(fēng)小子"其中的def可以理解為JavaScript中定義變量的var Stringname2=newString("山風(fēng)小子")//請(qǐng)注意Groovy的句尾的分號(hào)時(shí)可選的,即可要可不要,前提是一行代碼一條語(yǔ)句 //Java中寫為name1.equals(name2) if(name1==name2){ System.out.println("equal"); }else{ System.out.println("notequal"); } //Java中寫為name1==name
5、2 if(name1.is(name2)){ System.out.println("identical"); }else{ System.out.println("notidentical"); } 2.Java中的數(shù)組定義int[]a={1,2,3};在Groovy寫成int[]a=[1,2,3] 3.Java中的for循環(huán)for(inti=0;i6、ing } Groovy: for(inti=0;i7、urn"Hello,山風(fēng)小子" } //或者 publicStringsayHello(){ "Hello,山風(fēng)小子" } //或者 StringsayHello(){ "Hello,山風(fēng)小子" } //或者 publicsayHello(){ "Hello,山風(fēng)小子" } //或者 defsayHello(){ "Hello,山風(fēng)小子" } 5.Java中的innerclass即內(nèi)部類,在Groovy中用Closure實(shí)現(xiàn)(Closure是Java7正在考慮的一個(gè)特性,比innerclass在語(yǔ)義方面更完善)