最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java instanceof關(guān)鍵字的的進(jìn)一步理解

 更新時(shí)間:2015年03月11日 08:56:07   投稿:junjie  
這篇文章主要介紹了Java instanceof關(guān)鍵字的的進(jìn)一步理解,本文用一些實(shí)例講解了instanceof操作符的一些知識(shí),需要的朋友可以參考下

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

復(fù)制代碼 代碼如下:

    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è)類:

復(fù)制代碼 代碼如下:

    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)判斷:

復(fù)制代碼 代碼如下:

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ù)類型不同的方法就可以了:

復(fù)制代碼 代碼如下:

public double calculate(PhoneBill bill) {
    //計(jì)算電話賬單
}
public double calculate(GasBill bill) {
    //計(jì)算燃?xì)赓~單
}

相關(guān)文章

最新評(píng)論

晋中市| 通海县| 敦化市| 土默特左旗| 霸州市| 巴中市| 乌兰县| 新安县| 达州市| 巩留县| 普洱| 岳普湖县| 磐安县| 平乐县| 綦江县| 扶绥县| 茶陵县| 浏阳市| 三明市| 望奎县| 莱芜市| 岢岚县| 小金县| 安吉县| 新巴尔虎左旗| 鱼台县| 资源县| 栖霞市| 鄢陵县| 榆社县| 新宁县| 庆城县| 富顺县| 迭部县| 涞水县| 宣威市| 德令哈市| 诸暨市| 安溪县| 保定市| 乌拉特中旗|