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

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

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

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

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

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

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

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

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

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

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

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

這樣就可以用一個方法處理兩種子類。

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

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

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

相關(guān)文章

  • Java實現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換

    Java實現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換

    這篇文章主要介紹了Java實現(xiàn)ip地址和int數(shù)字的相互轉(zhuǎn)換,幫助大家更好的利用Java處理數(shù)據(jù),感興趣的朋友可以了解下
    2020-09-09
  • MyBatis-Plus聯(lián)表查詢(Mybatis-Plus-Join)的功能實現(xiàn)

    MyBatis-Plus聯(lián)表查詢(Mybatis-Plus-Join)的功能實現(xiàn)

    mybatis-plus作為mybatis的增強工具,簡化了開發(fā)中的數(shù)據(jù)庫操作,這篇文章主要介紹了MyBatis-Plus聯(lián)表查詢(Mybatis-Plus-Join),需要的朋友可以參考下
    2022-08-08
  • 聊聊在獲取方法參數(shù)名方面,Spring真的就比Mybatis強?

    聊聊在獲取方法參數(shù)名方面,Spring真的就比Mybatis強?

    在獲取方法參數(shù)名方面,Spring真的就比Mybatis強嗎?今天就帶大家聊聊這個話題,如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • JPA-JpaRepository方法命名語法說明

    JPA-JpaRepository方法命名語法說明

    這篇文章主要介紹了JPA-JpaRepository方法命名語法說明,具有很好的參考價值。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 深入探究Java原型模式的魅力

    深入探究Java原型模式的魅力

    Java原型模式是一種創(chuàng)建型設(shè)計模式,它通過復(fù)制現(xiàn)有對象的實例來創(chuàng)建新的對象實例,在本篇博客中,我們將詳細(xì)介紹Java原型模式的原理、實現(xiàn)方式、優(yōu)缺點以及適用場景等方面,需要的朋友可以參考下
    2023-05-05
  • java編寫汽車租賃系統(tǒng)

    java編寫汽車租賃系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java編寫汽車租賃系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • IntelliJ IDEA 2021.1 EAP 4 發(fā)布:字體粗細(xì)可調(diào)整Git commit template 支持

    IntelliJ IDEA 2021.1 EAP 4 發(fā)布:字體粗細(xì)可調(diào)整Git commit template 支持

    這篇文章主要介紹了IntelliJ IDEA 2021.1 EAP 4 發(fā)布:字體粗細(xì)可調(diào)整,Git commit template 支持,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Java中的Semaphore信號量詳解

    Java中的Semaphore信號量詳解

    這篇文章主要介紹了Java中的Semaphore信號量詳解,Semaphore(信號量)是用來控制同時訪問特定資源的線程數(shù)量,通過協(xié)調(diào)各個線程以保證合理地使用公共資源,需要的朋友可以參考下
    2023-12-12
  • Android開發(fā)中實現(xiàn)用戶注冊和登陸的代碼實例分享

    Android開發(fā)中實現(xiàn)用戶注冊和登陸的代碼實例分享

    這篇文章主要介紹了Android開發(fā)中實現(xiàn)用戶注冊和登陸的代碼實例分享,只是實現(xiàn)基本功能,界面華麗度就請忽略啦XD 需要的朋友可以參考下
    2015-12-12
  • SpringBoot項目實戰(zhàn)之?dāng)?shù)據(jù)交互篇

    SpringBoot項目實戰(zhàn)之?dāng)?shù)據(jù)交互篇

    這篇文章主要給大家介紹了關(guān)于SpringBoot項目實戰(zhàn)之?dāng)?shù)據(jù)交互篇的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03

最新評論

依兰县| 黎城县| 宜春市| 隆安县| 澄江县| 通化县| 霍州市| 朝阳区| 白河县| 武山县| 柯坪县| 惠州市| 启东市| 阜新| 通江县| 新密市| 通辽市| 合作市| 高州市| 陈巴尔虎旗| 丽江市| 夹江县| 怀仁县| 大冶市| 宝坻区| 惠东县| 哈巴河县| 通化县| 丰顺县| 彩票| 荣成市| 金塔县| 泸溪县| 甘孜| 青田县| 璧山县| 桃园市| 岳阳市| 乌鲁木齐县| 怀远县| 兴山县|