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

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

      我們聲明了一個String對象引用,指向一個String對象,然后用instancof來測試它所指向的對象是否是Object類的一個實(shí)例,顯然,這是真的,所以返回true,也就是isObject的值為True。
      instanceof有一些用處。比如我們寫了一個處理賬單的系統(tǒng),其中有這樣三個類:

      public class Bill {//省略細(xì)節(jié)}
      public class PhoneBill extends Bill {//省略細(xì)節(jié)}
      public class GasBill extends Bill {//省略細(xì)節(jié)}

      在處理程序里有一個方法,接受一個Bill類型的對象,計算金額。假設(shè)兩種賬單計算方法不同,而傳入的Bill對象可能是兩種中的任何一種,所以要用instanceof來判斷:

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

      然而,這種做法通常被認(rèn)為是沒有好好利用面向?qū)ο笾械亩鄳B(tài)性。其實(shí)上面的功能要求用方法重載完全可以實(shí)現(xiàn),這是面向?qū)ο笞兂蓱?yīng)有的做法,避免回到結(jié)構(gòu)化編程模式。只要提供兩個名字和返回值都相同,接受參數(shù)類型不同的方法就可以了:

      public double calculate(PhoneBill bill) {
      //計算電話賬單
      }

      public double calculate(GasBill bill) {
      //計算燃?xì)赓~單
      }

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

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


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


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

    導(dǎo)航

    統(tǒng)計

    留言簿(1)

    隨筆檔案(24)

    收藏夾(15)

    好站珍藏

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

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲乱码一二三四区麻豆| 亚洲?v无码国产在丝袜线观看 | 久久久国产精品亚洲一区| 国产综合精品久久亚洲| 国产成人麻豆亚洲综合无码精品 | 成人免费无毒在线观看网站 | 久久精品无码精品免费专区| 在线毛片片免费观看| 永久在线观看免费视频| 久久国产乱子伦精品免费看| 色猫咪免费人成网站在线观看| 99久9在线|免费| 亚洲精品视频在线免费| 无码av免费毛片一区二区 | 免费的黄色网页在线免费观看| 美女视频黄.免费网址| 免费无码一区二区| 一区二区三区免费精品视频| 人妻免费一区二区三区最新| 日韩免费无码一区二区三区 | 黄色网站软件app在线观看免费| 日本一区午夜艳熟免费| 亚洲一级毛片免费在线观看| 色婷婷7777免费视频在线观看| 最新免费jlzzjlzz在线播放| 免费一级e一片在线播放| 一本色道久久综合亚洲精品| 亚洲AV综合色区无码另类小说| 亚洲精品在线免费观看| 亚洲精品无码专区| 一级毛片无遮挡免费全部| 日本免费久久久久久久网站| 波多野结衣在线免费观看| 日本免费中文字幕在线看| 国产亚洲人成网站在线观看| 亚洲午夜久久久精品影院| 77777午夜亚洲| 亚洲国产免费综合| 国产曰批免费视频播放免费s| 国产高清免费观看| 狠狠色伊人亚洲综合成人|