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

Java中instanceof 關(guān)鍵字的使用

 更新時間:2023年10月13日 08:54:48   作者:即使再小的船也能遠(yuǎn)航  
instanceof通過返回一個布爾值來指出,某個對象是否是某個特定類或者是該特定類的子類的一個實例,本文就來詳細(xì)的介紹一下instanceof 關(guān)鍵字的使用,感興趣的可以了解一下

instanceof 通過返回一個布爾值來指出,某個對象是否是某個特定類或者是該特定類的子類的一個實例。

如果 object 是class 的一個實例,則 instanceof 運算符返回 true,如果 object 不是指定類的一個實例,或者object 是null, 則返回false。class 可以是類,可以是接口。

instanceof 在Java 的編譯狀態(tài) 和 運行狀態(tài)是有區(qū)別的:

  • 在編譯狀態(tài)中,class(指的是對象的引用)可以是object對象、父類,自身類,子類。在這三種情況下Java編譯時不會報錯。
  • 在運行狀態(tài)中,class 可以是 object 對象,父類,自身類,不能其他是子類。在前面三種情況下 result 的結(jié)果為 true,最后一種為false。但是class為子類時編譯不會報錯。運行結(jié)果為false.(大致就是判斷表達(dá)式:class 變量=(class)object的引用 是否立)。

 示例代碼:

AnimalParent.java

package com.api.Demo06;
public class AnimalParent {
//public interface AnimalParent { //也可以時接口
}

Cat.java

package com.api.Demo06;
public class Cat extends AnimalParent{
//public class Cat implements AnimalParent{
}

Dog.java

package com.api.Demo06;
public class Dog extends AnimalParent{
//public class Dog implements AnimalParent{
}

Test.java

package com.api.Demo06;
public class Test01 {
    public static void main(String[] args) {
        //多態(tài)技術(shù)
        AnimalParent cat = new Cat();
        // 類型轉(zhuǎn)換異常
//        Dog dog = (Dog) cat; //com.api.Demo06.Cat cannot be cast to com.api.Demo06.Dog
        // if(對象的引用 instanceof 具體的類型(類或接口))
        if (cat instanceof Dog) { //返回 布爾類型 是該類型 返回true,不是則返回false
            System.out.println("cat 是 Dog 類型");
        } else {
            System.out.println("cat 不是 Dog 類型");
        }
        /**
         * cat instanceof Dog 不是
         * cat instanceof Cat||AnimalParent||Object 是
         * 在編譯狀態(tài)中,class(對象的引用)可以是object對象的父類(AnimalParent),自身類(Cat),子類。
         * 在這三種情況下Java編譯時不會報錯。
         */
        // 強(qiáng)轉(zhuǎn)時 程序可能會直接 拋出異常,所以可以使用 instanceof 判斷一下
        if (cat instanceof Dog) {
            Dog dog = (Dog) cat;
            System.out.println("類型符合,可以強(qiáng)轉(zhuǎn)");
        } else {
            System.out.println("類型不符,不能強(qiáng)轉(zhuǎn)");
        }
    }
    /**
     * 在運行狀態(tài)中,class 可以是 object 對象的父類(AnimalParent),自身類(Cat),不能是其他的子類(Dog、)。
     * 在前面兩種情況下 result 的結(jié)果為 true,最后一種為false。
     */
}

到此這篇關(guān)于Java中instanceof 關(guān)鍵字的使用的文章就介紹到這了,更多相關(guān)Java instanceof 關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • springboot中request和response的加解密實現(xiàn)代碼

    springboot中request和response的加解密實現(xiàn)代碼

    這篇文章主要介紹了springboot中request和response的加解密實現(xiàn),在springboot中提供了RequestBodyAdviceAdapter和ResponseBodyAdvice,利用這兩個工具可以非常方便的對請求和響應(yīng)進(jìn)行預(yù)處理,需要的朋友可以參考下
    2022-06-06
  • SpringBoot內(nèi)置服務(wù)器(Tomcat/Jetty/Undertow)切換的操作指南

    SpringBoot內(nèi)置服務(wù)器(Tomcat/Jetty/Undertow)切換的操作指南

    本文介紹了如何在SpringBoot中切換內(nèi)置服務(wù)器(Tomcat、Jetty和Undertow),分析了它們的核心差異和適用場景,通過修改pom.xml和application.yml文件,可以實現(xiàn)服務(wù)器的切換和自定義配置,最后給出了選型建議和注意事項,需要的朋友可以參考下
    2026-03-03
  • Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別

    Java中靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)和普通代碼塊的區(qū)別

    在Java中,靜態(tài)代碼塊、構(gòu)造代碼塊、構(gòu)造函數(shù)、普通代碼塊的執(zhí)行順序是一個筆試的考點,通過這篇文章希望大家能徹底了解它們之間的執(zhí)行順序,需要的朋友可以參考下
    2023-05-05
  • Spring?BeanFactory工廠使用教程

    Spring?BeanFactory工廠使用教程

    Spring的本質(zhì)是一個bean工廠(beanFactory)或者說bean容器,它按照我們的要求,生產(chǎn)我們需要的各種各樣的bean,提供給我們使用。只是在生產(chǎn)bean的過程中,需要解決bean之間的依賴問題,才引入了依賴注入(DI)這種技術(shù)
    2023-02-02
  • 解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    解析java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別

    這篇文章主要介紹了java.library.path和LD_LIBRARY_PATH的介紹與區(qū)別,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • Java方法的返回值及注意事項小結(jié)

    Java方法的返回值及注意事項小結(jié)

    這篇文章主要介紹了Java方法的返回值及注意事項,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Java實現(xiàn)多層文件夾壓縮功能

    Java實現(xiàn)多層文件夾壓縮功能

    這篇文章主要為大家詳細(xì)介紹了如何利用Java語言進(jìn)行多層文件夾壓縮功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-08-08
  • 深入學(xué)習(xí)Spring Cloud-Ribbon

    深入學(xué)習(xí)Spring Cloud-Ribbon

    這篇文章主要介紹了Spring Cloud-Ribbon的相關(guān)知識,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友一起看看吧
    2021-03-03
  • IDEA集成MyBatis Generator插件的使用

    IDEA集成MyBatis Generator插件的使用

    這篇文章主要介紹了IDEA集成MyBatis Generator插件的使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java處理異常的機(jī)制關(guān)鍵字throw和throws使用解析

    java處理異常的機(jī)制關(guān)鍵字throw和throws使用解析

    這篇文章主要介紹了java處理異常的機(jī)制關(guān)鍵字throw和throws使用解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09

最新評論

阿拉善左旗| 涞源县| 商丘市| 烟台市| 德昌县| 丹凤县| 黑水县| 莲花县| 柏乡县| 屏东市| 寻甸| 北碚区| 泾川县| 恩平市| 亳州市| 安平县| 财经| 汉寿县| 莱芜市| 玉门市| 赣州市| 色达县| 黄骅市| 南靖县| 壤塘县| 忻州市| 宜黄县| 平乐县| 金川县| 合作市| 临西县| 金坛市| 龙里县| 铜川市| 山西省| 柳林县| 根河市| 大石桥市| 泰宁县| 丹江口市| 报价|