2005年8月11日

          Generic type in Tiger
          1. 受限范型是指類型參數(shù)的取值范圍是受到限制的. extends關(guān)鍵字不僅僅可以用來聲明類的繼承關(guān)系, 也可以用來聲明類型參數(shù)(type parameter)的受限關(guān)系.例如, 我們只需要一個(gè)存放數(shù)字的列表, 包括整數(shù)(Long, Integer, Short), 實(shí)數(shù)(Double, Float), 不能用來存放其他類型, 例如字符串(String), 也就是說, 要把類型參數(shù)T的取值范型限制在Number極其子類中.在這種情況下, 我們就可以使用extends關(guān)鍵字把類型參數(shù)(type parameter)限制為數(shù)字,
          2. 在創(chuàng)建范型類的對(duì)象的時(shí)候, 和創(chuàng)建普通對(duì)象基本類似, 必須提供具體的類類型來替代類型參數(shù)T (J2SE 5.0目前不支持原始類型作為類型參數(shù)(type parameter)).
          3. T和V雖然看起來是兩個(gè)不同的類型參數(shù), 但是在使用這個(gè)范型類的時(shí)候, T和V很有可能被替換成同一種類型. 因此在聲明多個(gè)類型參數(shù)的范型類時(shí), 要注意避免這種二義
          性錯(cuò)誤.
          4. J2SE 5.0中提供了范型的通配符"?", "?"可以用來代替任何類型, 例如使用通配符來實(shí)現(xiàn)print方法
          public static void print(GenList<?> list) {}
          而非 public static void print(GenList<T> list){}
          5. 范型的一些局限
          5.1 類型參數(shù)不能實(shí)例化,例如
          T t = new T(); // compiling error
          5.2 不能實(shí)例化類型參數(shù)的數(shù)組
          T[] ts = new T[10]; //compilation error
          5.3 類的靜態(tài)變量不能聲明為類型參數(shù)類型
          public class GenClass<T> {
              private static T t; // compiling error
          }
          5.4 范型類不能繼承自Throwable以及其子類
          public GenExpection<T> extends Exception{} // compiling error

          The artical in dW.
          posted @ 2005-08-11 15:46 Jason 閱讀(244) | 評(píng)論 (0)編輯 收藏

          2005年7月30日

          1.所有創(chuàng)建的枚舉類型都擴(kuò)展于 java.lang.Enum. Enum 是在J2SE 5.0 里定義的一個(gè)新類,它本身不是枚舉類型.在創(chuàng)建枚舉類型時(shí),必須用enum 關(guān)鍵字,不能直接地定義一個(gè)繼承Enum的類來創(chuàng)建一個(gè)枚舉類型,盡管所有創(chuàng)建的枚舉類型實(shí)際上都是Enum 的子類. 如果直接繼承Enum, compiler 就會(huì)報(bào)錯(cuò)(會(huì)導(dǎo)致編譯錯(cuò)誤).
          2.枚舉類型里定義的每一個(gè)值都是枚舉類型的一個(gè)實(shí)例,比方說High是Priority的一個(gè)實(shí)例.枚舉類型又是擴(kuò)展于Enum. 所以枚舉類型的每一個(gè)值聲明時(shí), 缺省時(shí)都將映射到Enum(String name, int ordinal) 構(gòu)造函數(shù)中.
          3.每一個(gè)創(chuàng)建的枚舉類型都是Enum 的子類,除了上面調(diào)用父類 Enum 的構(gòu)造函數(shù)外,枚舉類型可以使用參數(shù)為定義一些自己的構(gòu)造函數(shù).當(dāng)聲明值時(shí),只需調(diào)用此枚舉類型定義的構(gòu)造函數(shù),而且不必添加 new 關(guān)鍵字.
          4.枚舉類型每一個(gè)值都是public, static and final的.也就是說,這些值是唯一的而且一旦定義了是不能被重寫或修改.而且盡管在枚舉類型每一個(gè)值聲明時(shí)沒有出現(xiàn)static關(guān)鍵字,實(shí)際上值都是 靜態(tài)的, 而且我們不能在值前面加上static, public,final 修飾符
          5.一是這些枚舉類型的構(gòu)造函數(shù)都是私有的.它是不能被其它的類或者其它的枚舉類型調(diào)用的. 而且這個(gè)私有修飾符是由編譯器自動(dòng)加的,如果我們定義這些構(gòu)造函數(shù)時(shí),在前面加上public 修飾符, 就會(huì)導(dǎo)致編譯錯(cuò)誤. 二是變量定義必須在枚舉類型值定義之后.
          6.Summary
          使用枚舉類型是很簡(jiǎn)單的.它定義一個(gè)固定的、封閉的值集合,然后,在需要這些值中的某一個(gè)值時(shí),可以通過它的名稱來指定它,這就是枚舉類型的簡(jiǎn)單性.枚舉 類型的值就是枚舉類型的實(shí)例,編譯器會(huì)確保沒有傳入其他的類型,這就是枚舉類型的安全性.這些枚舉類型就是類本身,因此,可以對(duì)類進(jìn)行的所有操作同樣可以 作用于枚舉類型上.我們要小心使用構(gòu)造函數(shù)和函數(shù)重載方法,不要因?yàn)檫@些特性可用就任意使用它們.比如特定于常量的類主體,大多情況下可以用Switch 語句來代替,更容易讓人理解而且不容易出錯(cuò).我們也看到了Eclipse 3.1平臺(tái)對(duì)枚舉類型的支持,包括提供創(chuàng)建模板,錯(cuò)誤信息提示等.總之,枚舉類型的靈活應(yīng)用能極大的方便和簡(jiǎn)化了我們的開發(fā)工作.

          Original article: 在Eclipse 3.1中體驗(yàn)J2SE 5.0的新特性
          posted @ 2005-07-30 16:51 Jason 閱讀(304) | 評(píng)論 (1)編輯 收藏

          2005年7月4日

          Here is a good place.
          We can talk about Java here.

          posted @ 2005-07-04 15:18 Jason 閱讀(180) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
           
          主站蜘蛛池模板: 沽源县| 台北县| 渝中区| 德格县| 冷水江市| 邢台县| 武城县| 苍梧县| 吴川市| 铜川市| 吉隆县| 大兴区| 巨鹿县| 临漳县| 麦盖提县| 奎屯市| 南川市| 仙桃市| 沂水县| 唐山市| 阳朔县| 仙游县| 红桥区| 万源市| 金寨县| 固原市| 武宁县| 江达县| 饶河县| 桃源县| 东乌| 灯塔市| 浏阳市| 禄丰县| 白水县| 西城区| 南开区| 兴隆县| 车致| 夏河县| 于田县|