<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    無為

    無為則可為,無為則至深!

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      190 Posts :: 291 Stories :: 258 Comments :: 0 Trackbacks
    在J2SE?5.0版本中,java語言引入了很多新的特性,本文將主要介紹static?import。static?import主要解決的問題是方便開發(fā)人員創(chuàng)建和使用全局的常量以及靜態(tài)的方法。要使用這一新的特性您應(yīng)該首先從java.sun.com下載最新的j2sdk?5.0。?

    ????在《effective?java》中作者曾經(jīng)談到在接口中定義常量是很糟糕的一種使用方法,我們應(yīng)該始終使用接口來定義類型。但是在實(shí)際開發(fā)工作中還是有很多人這樣使用接口,他們這樣做的原因是這樣定義常量使用起來很方便。例如如下定義方式:
    ???public?interface?BadIrrationalConstants?{
    ?????public?static?final?double?SQRT_TWO?=?1.414;
    ?????public?static?final?double?SQRT_THREE?=?1.732;
    ???}

    ?public?interface?BadTranscendentalConstants?{
    ?????public?static?final?double?PI?=?3.14159;
    ?????public?static?final?double?E?=?2.71828;}
    ???

    ????如果你想在自己的類中使用這些接口中定義的常量的時候,那么你必須要實(shí)現(xiàn)這些接口。比如
    ?????public?class?BadUseOfConstants?implements
    ?????BadTranscendentalConstants,?BadIrrationalConstants?{

    ????public?static?double?sinPiOverFour()?{
    ???????return?SQRT_TWO?/?2;
    ?????}

    ?????public?static?void?main(String[]?args)?{
    ???????System.out.println("Pi?is?approximately?"?+?PI);
    ???????System.out.println("The?sin?of?Pi/4?is?about?"?+
    ?????????sinPiOverFour());
    ?????}
    ???}
    ????這樣這些常量就變成你的類的一部分了,如果這個類不是final的話,其它的類繼承了這個類又使得它繼承了這些常量,但是這也許不是用戶需要的結(jié)果。

    ????針對這樣的情況,我們可以這樣做,那就是在一個類中定義這些常量,使用的時候可以通過ClassName.variableName來訪問他們。例如
    package?staticEx;
    ???public?class?IrrationalConstants?{
    ?????public?static?final?double?SQRT_TWO?=?1.414;
    ?????public?static?final?double?SQRT_THREE?=?1.732;
    ???}
    package?staticEx;
    ???public?class?TranscendentalConstants?{
    ?????public?static?final?double?PI?=?3.14159;
    ?????public?static?final?double?E?=?2.71828;
    ???}

    ????現(xiàn)在J2SE?5.0提供了靜態(tài)導(dǎo)入的功能,你只需要在import關(guān)鍵字后面寫一個static關(guān)鍵字就可以直接使用類中定義的常量了,例如
    ???import?static?staticEx.IrrationalConstants.SQRT_TWO;
    ???import?static?staticEx.IrrationalConstants.SQRT_THREE;
    ???import?static?staticEx.TranscendentalConstants.PI;

    ????當(dāng)然你也可以使用.*的格式,例如
    import?static?staticEx.IrrationalConstants.*;的格式??
    package?staticEx;
    ???import?static?staticEx.IrrationalConstants.SQRT_TWO;
    ???import?static?staticEx.IrrationalConstants.SQRT_THREE;
    ???import?static?staticEx.TranscendentalConstants.PI;
    ???public?class?ConstantsWithStaticImport?{
    ?????public?static?double?sinPiOverFour()?{
    ???????return?SQRT_TWO?/?2;
    ?????}
    ?????public?static?void?main(String[]?args)?{
    ???????System.out.println("Pi?is?approximately?"?+?PI);
    ???????System.out.println("The?sin?of?Pi/4?is?about?"?+
    ?????????sinPiOverFour());
    ?????}
    ???}

    ????運(yùn)行該程序會得到
    ???Pi?is?approximately?3.14159
    ???The?sin?of?Pi/4?is?about?0.707

    ????在這里提醒大家一下,如果你過多的使用.*的樣式,那么可能會給程序的可讀性帶來負(fù)面的影響。因?yàn)槟愫茈y看出這個變量在哪里定義的。

    ????對常量定義是如此,對靜態(tài)方法的使用也適用。例如下面的例子
    ??package?staticEx;

    ???public?class?IrrationalConstants2?{
    ?????public?static?final?double?SQRT_TWO?=?1.414;
    ?????public?static?final?double?SQRT_THREE?=?1.732;

    ?????public?static?double?sinPiOverFour()?{
    ???????return?SQRT_TWO?/?2;
    ?????}
    ???}
    package?staticEx;

    ???import?static?staticEx.IrrationalConstants2.*;
    ???import?static?staticEx.TranscendentalConstants.*;

    ???public?class?ConstantsWithStaticImport2?{

    ?????public?static?void?main(String[]?args)?{
    ???????System.out.println("Pi?is?approximately?"?+?PI);
    ???????System.out.println("The?sin?of?Pi/4?is?about?"?+
    ?????????sinPiOverFour());
    ?????}
    ???}
    ????在ConstantsWithStaticImport2類中靜態(tài)導(dǎo)入IrrationalConstants2后就可以直接使用它的靜態(tài)方法sinPiOverFour()了。

    ????以上簡單的介紹了如何使用static?import,您可以參考一下連接獲得更多的介紹:
    http://java.sun.com/developer/JDCTechTips/2004/tt1005.html
    http://java.sun.com/j2se/1.5.0/docs/guide/language/static-import.html

    凡是有該標(biāo)志的文章,都是該blog博主Caoer(草兒)原創(chuàng),凡是索引、收藏
    、轉(zhuǎn)載請注明來處和原文作者。非常感謝。

    posted on 2006-06-11 12:50 草兒 閱讀(142) 評論(0)  編輯  收藏 所屬分類: Java編程經(jīng)驗(yàn)談
    主站蜘蛛池模板: 毛片高清视频在线看免费观看| 日韩版码免费福利视频| 亚洲一卡2卡3卡4卡国产网站| 永久免费视频网站在线观看| 日本高清免费中文在线看| 亚洲精品无码鲁网中文电影| 日本大片在线看黄a∨免费| 一级毛片正片免费视频手机看| 77777亚洲午夜久久多人| 哒哒哒免费视频观看在线www| 中文字幕在线免费观看视频| 美女尿口扒开图片免费| 亚洲人成网站在线在线观看| 亚洲熟妇av一区| 亚洲国产精品久久久久婷婷软件| 成年轻人网站色免费看| g0g0人体全免费高清大胆视频| 亚洲韩国在线一卡二卡| 久久久影院亚洲精品| 久久精品国产99精品国产亚洲性色| 国产免费久久精品99re丫y| 中文字幕免费高清视频| 99精品热线在线观看免费视频| 亚洲AV无码AV日韩AV网站| 亚洲中文字幕AV每天更新| 久久精品国产亚洲AV蜜臀色欲 | 最近中文字幕无免费视频| 69xx免费观看视频| 18勿入网站免费永久| 114一级毛片免费| 久久久WWW免费人成精品| 一级特级女人18毛片免费视频| 亚洲最大免费视频网| 亚洲成年人电影网站| 亚洲 暴爽 AV人人爽日日碰| 国产精品亚洲专区在线观看| 亚洲成色www久久网站夜月| 亚洲av鲁丝一区二区三区| 亚洲国产二区三区久久| 亚洲一区二区三区无码影院| 亚洲综合激情另类专区|