java中instanceof 關(guān)鍵字作用和實(shí)際用途詳解
instanceof
1. instanceof 是Java中的一個(gè)關(guān)鍵字,Java中的關(guān)鍵子都是小寫。
2. instanceof關(guān)鍵字的作用是判斷左邊對(duì)象是否是右邊類(這里有很多人說是對(duì)象,所以注意這里是類,并不是對(duì)象)的實(shí)例(通俗易懂的說就是:子類對(duì)象,或者右邊類本身的對(duì)象)返回的boolean類型,true和false。
舉個(gè)例子:
public class Dome{ class Perse extends Object{} class Student extends Perse{} //這個(gè)方法判斷是否是Perse的實(shí)例,用instanceof判斷。 void f(Object o){//Object可以接收任何的類型。 if(o instanceof Perse) System.out.println("你輸入的對(duì)象是Perse的實(shí)例"); else System.out.println("你輸入的對(duì)象不是Perse的實(shí)例"); public static void main(String[] args){ Dome dome =new Doem(); Perse perse =new Perse(); Student student =new Student(); Object object = new Object(); dome.f(/*shutdent或者perse以及object*/); //結(jié)果: //輸入的是student和perse那么instanceof 判斷就會(huì)是true,if也就執(zhí)行打印語句System.out.println("你輸入的對(duì)象是Perse的實(shí)例"); //那么輸入object自然instanceof判斷就是false。 原因我們開頭已經(jīng)說的很清楚啦。 //instanceof關(guān)鍵字的作用是判斷左邊對(duì)象是否是右邊對(duì)象的實(shí)例(通俗易懂的說就是:子類,或者右邊類本身的對(duì)象) } }
使用環(huán)境
public class CastingDemo{ public static void displayObject(Object o){ if(o instanceof Yuan){//判斷是否為圓的對(duì)象,不是則往下執(zhí)行判斷else if System.out.println("圓的面積為:" + ((Yuan)o).mianJi);//這里(Yuan)Object)防止參數(shù)o是Yuan的子類,此方法獲得面積。 System.out.println("圓的直徑為:" + ((Yuan)o).zhiJing);//此方法獲得直徑。 }else if(o instanceof ChangFangXing){ System.out.println("長方形的面積為:" + ((ChangFangXing)o)); } } public static void main(String[ ] args){ Object yuan =new Yuan(/*半徑:*/ 1 );//Yuan是圓的對(duì)象,參數(shù)是半徑,的出圓的面積和直徑。詳細(xì)類就不寫啦,理解就行。 Object changFangXing =new ChangFangXing(/*長寬:*/ 1,1);//ChangFangXing是長方形,參數(shù)是長和寬,的出面積 //因?yàn)槭庆o態(tài)方法并且在本類直接使用,省略 類名. displayObject(yuan); displayObject(changFangXing); } }
結(jié)果:圓的面積為:3.1415926
圓的直徑為:2.0
長方形的面積為:1.0
這個(gè)樣子的使用instanceof增加了代碼的靈活性,如果你有更好的例子可以分享出來一起參考。
到此這篇關(guān)于java中instanceof 關(guān)鍵字作用和實(shí)際用途的文章就介紹到這了,更多相關(guān)java instanceof 關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Spring boot標(biāo)記一個(gè)方法過時(shí)
這篇文章主要介紹了使用Spring boot標(biāo)記一個(gè)方法過時(shí),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12如何使用Bean Validation 解決業(yè)務(wù)中參數(shù)校驗(yàn)
這篇文章主要介紹了如何使用Bean Validation 解決業(yè)務(wù)中參數(shù)校驗(yàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07spring bean標(biāo)簽的primary屬性用法講解
這篇文章主要介紹了spring bean標(biāo)簽的primary屬性用法講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09基于Transactional事務(wù)的使用以及注意說明
這篇文章主要介紹了Transactional事務(wù)的使用以及注意說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07簡述springboot及springboot cloud環(huán)境搭建
這篇文章主要介紹了簡述springboot及springboot cloud環(huán)境搭建的方法,包括spring boot 基礎(chǔ)應(yīng)用環(huán)境搭建,需要的朋友可以參考下2017-07-07Java中使用jaxp進(jìn)行sax解析_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
使用SAX的優(yōu)勢在于其解析速度較快,相對(duì)于DOM而言占用內(nèi)存較少。這篇文章主要介紹了Java中使用jaxp進(jìn)行sax解析,需要的朋友可以參考下2017-08-08