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

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

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

    itkui

    年少為何不輕狂!

    『轉(zhuǎn)摘』Java中的instanceof關(guān)鍵字

    instanceof是Java的一個(gè)二元操作符,和==,>,<是同一類東東。由于它是由字母組成的,所以也是Java的保留關(guān)鍵字。它的作用是測(cè)試它左邊的對(duì)象是否是它右邊的類的實(shí)例,返回boolean類型的數(shù)據(jù)。舉個(gè)例子:

      String s = "I AM an Object!";
      boolean isObject = s instanceof Object;

      我們聲明了一個(gè)String對(duì)象引用,指向一個(gè)String對(duì)象,然后用instancof來(lái)測(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來(lái)判斷:

      public double calculate(Bill bill) {
      if (bill instanceof PhoneBill) {
      //計(jì)算電話賬單
      }
      if (bill instanceof GasBill) {
      //計(jì)算燃?xì)赓~單
      }
      ...
      }
      這樣就可以用一個(gè)方法處理兩種子類。

      然而,這種做法通常被認(rèn)為是沒(méi)有好好利用面向?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ì)赓~單
      }

      所以,使用instanceof在絕大多數(shù)情況下并不是推薦的做法,應(yīng)當(dāng)好好利用多態(tài)。

    posted on 2007-06-16 21:24 itkui 閱讀(197) 評(píng)論(0)  編輯  收藏


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


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

    導(dǎo)航

    統(tǒng)計(jì)

    留言簿(1)

    隨筆檔案(24)

    收藏夾(15)

    好站珍藏

    學(xué)習(xí)資源

    搜索

    積分與排名

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 热re99久久6国产精品免费| 日本视频免费观看| 亚洲综合在线视频| 亚洲高清国产拍精品26U| 中文字幕亚洲色图| 亚洲精品天堂在线观看| 国产综合成人亚洲区| 国产麻豆成人传媒免费观看 | 亚洲国产激情一区二区三区| 国产亚洲精品无码专区| 亚洲人成在线免费观看| 亚洲色成人WWW永久在线观看| ww在线观视频免费观看w| 亚洲黄色免费网址| mm1313亚洲精品国产| 亚洲综合色一区二区三区小说| 国内成人精品亚洲日本语音| 亚洲精品综合久久| 亚洲精品第一国产综合野| 免费h视频在线观看| 亚洲日本一区二区三区| 免费一级毛片在线播放放视频| 亚洲中文无韩国r级电影 | 亚洲欧洲在线观看| 91麻豆最新在线人成免费观看| 国产人成免费视频| 亚洲午夜免费视频| 最近最新的免费中文字幕| 国产精品亚洲а∨无码播放| 亚洲av无码专区在线电影| 67194国产精品免费观看| 亚洲码欧美码一区二区三区| 国产成人精品免费视频网页大全| 亚洲另类激情综合偷自拍图| 0588影视手机免费看片| 久久精品国产亚洲AV未满十八| 丁香花在线观看免费观看| 国产成人精品日本亚洲专| 四虎影在线永久免费四虎地址8848aa| 亚洲免费在线观看| 亚洲免费在线观看|