中國(guó)星星

          向往自由的空氣/燦爛的陽(yáng)光/輕柔的風(fēng)……

           

          關(guān)鍵字final、finally和方法finalize()

          關(guān)鍵字final

           

          1、聲明變量,阻止對(duì)其內(nèi)容進(jìn)行修改:

           

          Java代碼
          final int FILE_NEW = 1; 

          final int FILE_NEW = 1;

           

          2、在繼承中使用:

           

              a、阻止重寫(xiě)

           

          Java代碼
          class A {   
              final void meth() {   
                  System.out.println("The final method.");   
                }   
          }   
           
          class B extends A {   
              void meth() { //錯(cuò)誤的,無(wú)法繼承。  
                  System.out.println("Illegal.");  
                }   
          }  

          class A {
              final void meth() {
                  System.out.println("The final method.");
                }
          }

          class B extends A {
              void meth() { //錯(cuò)誤的,無(wú)法繼承。
                  System.out.println("Illegal.");
                }

              聲明為final的方法有時(shí)候可以提高程序性能。

           

              b、使用final阻止繼承

           

          Java代碼
           final class A {   
                  //...   
          }  
           
          class B extends A {     //錯(cuò)誤的   
                  //...   
          }  

           final class A {
                  //...
          }

          class B extends A {     //錯(cuò)誤的
                  //...

              聲明一個(gè)類(lèi)為final則隱式的聲明了它的所有方法也為final,聲明一個(gè)類(lèi)既是abstract又是final是不合法的。

           

          關(guān)鍵字finally

           

              當(dāng)拋出異常的時(shí)候,方法內(nèi)的程序會(huì)采取一種突變的非線性的路線,這樣就改變了方法內(nèi)的正常程序流。根據(jù)方法的編碼形式,異常可能使方法過(guò)早的返回。finally就是用來(lái)解決這種意外事件的。 finally創(chuàng)建一個(gè)代碼塊,該代碼將在執(zhí)行完成try/catch塊之后執(zhí)行try/catch塊后面的代碼之前被執(zhí)行。無(wú)論是否拋出異常,finally塊都將執(zhí)行。如果拋出異常,即使沒(méi)有catch語(yǔ)句匹配這個(gè)異常,finally塊也將執(zhí)行。

           

          方法finalize()

           

              在撤銷(xiāo)一個(gè)對(duì)象的時(shí)候,有時(shí)候需要完成一些操作。比如:一個(gè)對(duì)象正持有某些非Java資源,要確保在對(duì)象被銷(xiāo)毀之前釋放這些資源。為處理這種情況Java提供了一種稱(chēng)為結(jié)束(finalization)的機(jī)制。使用結(jié)束,可以定義特殊的動(dòng)作,這種動(dòng)作在一個(gè)對(duì)象要被垃圾收集器收回時(shí)執(zhí)行。要給一個(gè)類(lèi)添加結(jié)束器,只需定義finalize()方法。

           

          Java代碼
          protected void finalize()   
          {   
                  // finalization code here   

          protected void finalize()
          {
                  // finalization code here
          }

          posted on 2008-10-31 09:46 Jesin 閱讀(301) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 永泰县| 荃湾区| 密云县| 九台市| 东乌| 都江堰市| 肥乡县| 巫溪县| 喀什市| 上饶县| 兰考县| 遂川县| 邵东县| 嘉禾县| 连城县| 利辛县| 丰镇市| 商南县| 阳朔县| 诏安县| 运城市| 山阴县| 郴州市| 柘荣县| 赫章县| 密山市| 剑河县| 永定县| 绥阳县| 德化县| 华宁县| 普兰店市| 湘潭市| 永宁县| 利辛县| 麻江县| 绥江县| 宁夏| 渑池县| 巴楚县| 称多县|