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

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

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

    開源俱樂部

    開源框架
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    java instanceof淺談!

    Posted on 2007-07-04 22:17 HandSoft 閱讀(879) 評論(0)  編輯  收藏 所屬分類: 雜談
    instanceof 是Java的一個二元操作符,和==, > , < 是同一類東西. 由于它是由字母組成的,所以也是Java的保留關鍵字. 它的作用是測試它左邊的對象是否是它右邊的類的實例, 返回boolean類型的數據。例:
          String s = "I an an Object!";
          boolean isObject = s  instanceOf  Object;
    我們聲明了一個String對象引用, 指向一個String 對象, 然后用instanceof 來測試它所指向的對象是否是Object類的一個實例, 顯然, 這是真的, 所以返回true,也就是isObject的值為True.
          instanceof有一些用處. 比如我們寫了一個處理帳單的系統, 其中有這樣三個類:
          public class Bill{//省略細節}
          public class PhoneBill  extends Bill {//省略細節}
          public class GasBill extends Bill {//省略細節}    
    在處理程序里有一個方法, 接受一個Bill類型的對象, 計算金額. 假設兩種帳單計算方法不同, 而傳入的Bill對象可能是兩種中的任何一種, 所以要用instanceof來判斷:
          public  double  calculate(Bill  bill){
                 if(bill  instanceof PhoneBill){
                       //計算電話帳單
                 }
                 if(bill  instanceof  GasBill){
                      //計算煤氣帳單
                 }
                 ...
          }
    這樣就可以用一個方法處理兩種子類.
    然而, 這種做法通常被認為是沒有好好利用面向對象中的多態性.  其實上面的功能要求用方法重載完全可以實現, 這是面向對象編成應有的做法, 避免回到結構化編程模式. 只有提供兩個名字和返回值都相同, 接受參數類型不同的方法就可以了: 
          public double calculate(PhoneBill bill){
               //計算電話帳單
          }
           public double calculate(GasBill  bill){
              //計算燃氣帳單
           }
    所以,  使用instanceof在絕大多數情況下并不是推薦的做法, 應當好好利用多態.
    主站蜘蛛池模板: 中文日韩亚洲欧美制服| 亚洲伊人久久大香线蕉在观| 美女免费视频一区二区| 在线观看免费a∨网站| 亚洲日韩国产AV无码无码精品| 一色屋成人免费精品网站| 亚洲18在线天美| 毛片免费视频播放| 久久精品国产亚洲av麻豆蜜芽 | 美女黄色免费网站| 亚洲av无码专区在线观看素人| 男性gay黄免费网站| 亚洲一级片免费看| 日本免费污片中国特一级| 精品亚洲成a人片在线观看| 99久久久精品免费观看国产| 久久亚洲国产最新网站| 国产在线19禁免费观看| 国产又黄又爽胸又大免费视频 | 亚洲精品无码AV人在线播放 | 亚洲人成色777777老人头| 免费人成在线观看播放国产| 无人视频免费观看免费视频| 亚洲一区二区三区香蕉| 精品一区二区三区免费毛片爱| 久久精品国产亚洲AV蜜臀色欲| 免费一级毛片在播放视频| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲欧洲精品无码AV| 亚洲黄色片免费看| 成a人片亚洲日本久久| 亚洲情综合五月天| 国产精品成人免费一区二区| 免费很黄无遮挡的视频毛片| 亚洲福利在线视频| 97无码免费人妻超级碰碰碰碰| sihu国产精品永久免费| 亚洲同性男gay网站在线观看| 国产hs免费高清在线观看| 无码人妻久久一区二区三区免费 | 精品亚洲综合在线第一区|