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

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

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

    零全零美(www.zzgwt.com)
    生活中的很多事情,并不像If...Else那么簡單!
    posts - 96,comments - 52,trackbacks - 0
    instanceof是Java的一個二元操作符,和==,>,<是同一類東東。由于它是由字母組成的,所以也是Java的保留關鍵字。它的作用是測試它左邊的對象是否是它右邊的類的實例,返回boolean類型的數據。舉個例子:

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

    我們聲明了一個String對象引用,指向一個String對象,然后用instancof來測試它所指向的對象是否是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在絕大多數情況下并不是推薦的做法,應當好好利用多態。
    posted on 2008-05-31 09:19 零全零美 閱讀(184) 評論(0)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成网站18禁止一区 | 亚洲另类古典武侠| 亚洲成片观看四虎永久| h视频在线观看免费完整版| h片在线观看免费| 亚洲色偷偷综合亚洲AV伊人蜜桃| 亚洲av无码不卡一区二区三区| 免费在线观看日韩| 成人无遮挡裸免费视频在线观看| 人人揉揉香蕉大免费不卡| 免费无码午夜福利片| 亚洲丰满熟女一区二区哦| 亚洲一区二区三区四区视频 | 久久久精品午夜免费不卡| 高清免费久久午夜精品| 亚洲av成人中文无码专区| 精品久久久久久亚洲精品| 337p日本欧洲亚洲大胆色噜噜 | 国产亚洲精品精品精品| 中文字幕乱码亚洲无线三区 | 女人体1963午夜免费视频| 91视频免费观看| rh男男车车的车车免费网站| 精品成人一区二区三区免费视频| 亚洲一区二区影视| ww亚洲ww在线观看国产| 亚洲图片校园春色| 亚洲日本在线播放| 亚洲成人福利在线观看| 亚洲网站在线播放| 亚洲精品资源在线| 亚洲av无码片区一区二区三区| 亚洲理论片在线中文字幕| 亚洲精彩视频在线观看| 91亚洲精品自在在线观看| 亚洲午夜久久久精品电影院| 亚洲午夜精品一区二区公牛电影院| 亚洲视频免费在线播放| 亚洲女人18毛片水真多| 亚洲国产成人精品无码一区二区 | 亚洲区小说区激情区图片区|