javan

          i like java
          隨筆 - 0, 文章 - 28, 評(píng)論 - 2, 引用 - 0
          數(shù)據(jù)加載中……

          java編程思想3中的實(shí)例(AnonymousConstructor.java)

          // Creating a constructor for an anonymous inner class.   
          // From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002   
          // www.BruceEckel.com. See copyright notice in CopyRight.txt.   
          import com.bruceeckel.simpletest.*;   
          #   

            //其間認(rèn)識(shí)到了以前理解上的 錯(cuò)誤:抽象類是可以有構(gòu)造函數(shù)的,并且僅僅是抽象類中的抽象方法不能有方法體
            //在
          AnonymousConstructor類中定義內(nèi)部類時(shí),依然調(diào)用Base類中的構(gòu)造函數(shù)



          abstract class Base {   
          #   
          public Base(int i) {   //匿名內(nèi)部類是引用的外部定義的對(duì)象,編譯器會(huì)要求其參數(shù)引用是final型(而本例中在getBase(int i)方法中的i不是final類型,是因?yàn)閕沒有在外部類base中使用)
          #     System.out.println(
          "Base constructor, i = " + i);   
          #   }   
          #   
          public abstract void f();   
          # }   
          #    
          public class AnonymousConstructor {   
          #   
          private static Test monitor = new Test();   
          #   
          public static Base getBase(int i) {   //定義在靜態(tài)方法中的內(nèi)部類----匿名內(nèi)部類---return new Base(i)類似于class Base{ Base(i)...的聲明
          #     
          return new Base(i) {   
          #       {   
          #         System.out.println(
          "Inside instance initializer");   
          #       }   
          #       
          public void f() {   
          #         System.out.println(
          "In anonymous f()");   
          #       }   
          #     }; //此處有個(gè)分號(hào),表明表達(dá)式的結(jié)束 
          #   }   
          #   
          public static void main(String[] args) {   
          #     Base base 
          = getBase(47);   
          #     base.f();   
          #     monitor.expect(
          new String[] {   
          #       
          "Base constructor, i = 47",   
          #       
          "Inside instance initializer",   
          #       
          "In anonymous f()"   
          #     });   
          #   }   
          # } 
          ///:~ 

          posted on 2009-05-22 16:44 whl 閱讀(118) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 浏阳市| 绥棱县| 靖宇县| 安化县| 西畴县| 南京市| 酉阳| 莱阳市| 和静县| 武清区| 大庆市| 开化县| 石门县| 麻栗坡县| 平泉县| 宁化县| 陈巴尔虎旗| 清徐县| 呼伦贝尔市| 新余市| 凌海市| 朝阳县| 哈密市| 阳江市| 广宁县| 淮安市| 邵阳县| 绍兴市| 商南县| 临泉县| 龙里县| 池州市| 衡山县| 台湾省| 陆川县| 岑巩县| 腾冲县| 冕宁县| 中卫市| 子洲县| 黄大仙区|