一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java instanceof關鍵字的進一步理解

Java instanceof關鍵字的進一步理解

2019-12-10 14:01junjie JAVA教程

這篇文章主要介紹了Java instanceof關鍵字的的進一步理解,本文用一些實例講解了instanceof操作符的一些知識,需要的朋友可以參考下

instanceofJava的一個二元操作符,和==,>,<是同一類東東。由于它是由字母組成的,所以也是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) {
    //計算燃氣賬單
}

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产亚洲爽啪在线影院 | 亚洲高清无在码在线电影 | 骚虎最新网址 | 小早川怜子息梦精在线播放 | 91麻豆精品国产91久久久 | 国产成人精品.一二区 | 成年性午夜免费视频网站不卡 | 公妇仑乱在线观看 | 99精品免费观看 | 星空无限传媒视频在线观看视频 | 国产精品制服丝袜白丝www | 日韩二区三区 | 三体动漫在线观看免费完整版2022 | 欧美成人手机 | 国产欧美日韩综合 | 91私密保健女子养生spa | 精品国产日韩亚洲一区在线 | 性欧美黑人巨大喷潮xxoo | 人与动人物aaaa | 久久精视频 | 欧美又黄又激烈真实床戏 | 污网站免费观看在线高清 | 91中文字幕yellow字幕网 | 成年美女黄网色大观看全 | 精品午夜久久福利大片免费 | 国产精品视频第一区二区 | 国产精品自在欧美一区 | 久久棋牌评测 | 青苹果乐园影院免费观看完整版 | 日本午夜大片免费观看视频 | 国产成人精品高清在线观看99 | 亚洲精品第二页 | 操久| 91噜噜噜噜色 | 好大好爽好硬我要喷水了 | 国产在线乱子伦一区二区 | 免费精品在线视频 | 欧美大片一区二区 | 国产成人亚洲综合a∨婷婷 国产成人亚洲精品乱码在线观看 | 成年视频在线观看 | 国产伊人久久 |