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

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

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

    開源俱樂部

    開源框架

    java instanceof淺談!

    Posted on 2007-07-04 22:17 HandSoft 閱讀(887) 評(píng)論(0)  編輯  收藏 所屬分類: 雜談
    instanceof 是Java的一個(gè)二元操作符,和==, > , < 是同一類東西. 由于它是由字母組成的,所以也是Java的保留關(guān)鍵字. 它的作用是測(cè)試它左邊的對(duì)象是否是它右邊的類的實(shí)例, 返回boolean類型的數(shù)據(jù)。例:
          String s = "I an an Object!";
          boolean isObject = s  instanceOf  Object;
    我們聲明了一個(gè)String對(duì)象引用, 指向一個(gè)String 對(duì)象, 然后用instanceof 來測(cè)試它所指向的對(duì)象是否是Object類的一個(gè)實(shí)例, 顯然, 這是真的, 所以返回true,也就是isObject的值為True.
          instanceof有一些用處. 比如我們寫了一個(gè)處理帳單的系統(tǒng), 其中有這樣三個(gè)類:
          public class Bill{//省略細(xì)節(jié)}
          public class PhoneBill  extends Bill {//省略細(xì)節(jié)}
          public class GasBill extends Bill {//省略細(xì)節(jié)}    
    在處理程序里有一個(gè)方法, 接受一個(gè)Bill類型的對(duì)象, 計(jì)算金額. 假設(shè)兩種帳單計(jì)算方法不同, 而傳入的Bill對(duì)象可能是兩種中的任何一種, 所以要用instanceof來判斷:
          public  double  calculate(Bill  bill){
                 if(bill  instanceof PhoneBill){
                       //計(jì)算電話帳單
                 }
                 if(bill  instanceof  GasBill){
                      //計(jì)算煤氣帳單
                 }
                 ...
          }
    這樣就可以用一個(gè)方法處理兩種子類.
    然而, 這種做法通常被認(rèn)為是沒有好好利用面向?qū)ο笾械亩鄳B(tài)性.  其實(shí)上面的功能要求用方法重載完全可以實(shí)現(xiàn), 這是面向?qū)ο缶幊蓱?yīng)有的做法, 避免回到結(jié)構(gòu)化編程模式. 只有提供兩個(gè)名字和返回值都相同, 接受參數(shù)類型不同的方法就可以了: 
          public double calculate(PhoneBill bill){
               //計(jì)算電話帳單
          }
           public double calculate(GasBill  bill){
              //計(jì)算燃?xì)鈳?br>       }
    所以,  使用instanceof在絕大多數(shù)情況下并不是推薦的做法, 應(yīng)當(dāng)好好利用多態(tài).
    主站蜘蛛池模板: 成全视频免费高清| 91青青国产在线观看免费| 国内自产少妇自拍区免费| 亚洲国产成+人+综合| 37pao成人国产永久免费视频| 久久亚洲私人国产精品| 久久免费精品一区二区| 亚洲精品免费视频| 永久在线观看www免费视频| 亚洲天堂电影在线观看| 国产精品成人免费一区二区| 伊人久久五月丁香综合中文亚洲| 男人的好看免费观看在线视频| 亚洲欧洲免费无码| 高清在线亚洲精品国产二区| 一个人免费观看日本www视频| 亚洲人成无码久久电影网站| 伊人免费在线观看| 亚洲无砖砖区免费| 午夜dj在线观看免费视频| 四虎一区二区成人免费影院网址 | 青青操在线免费观看| 在线观看亚洲av每日更新| 久久久99精品免费观看| 亚洲第一成年人网站| 黄a大片av永久免费| 久久www免费人成看国产片| 久久久无码精品亚洲日韩按摩| 100000免费啪啪18免进| 美女一级毛片免费观看| 亚洲国产综合无码一区| 91黑丝国产线观看免费| 午夜亚洲乱码伦小说区69堂| 黑人大战亚洲人精品一区| 18禁免费无码无遮挡不卡网站| 香港特级三A毛片免费观看| 久久亚洲AV成人无码电影| 免费乱码中文字幕网站| 午夜免费福利片观看| 亚洲AV永久无码天堂影院| 亚洲国产一成人久久精品|