Ako implementovať InstanceOf v JAVA?



Tento článok o InstanceOf v Jave vám predstaví Java instancOf Operator a nadviaže na neho praktickou ukážkou.

InstanceOf In je operátor, ktorý sa používa na kontrolu typu objektu. Inými slovami testuje, či je objekt inštanciou konkrétnej triedy alebo rozhraním. Výstupom takejto operácie je buď Pravdaže alebo Falošné

V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,





Pokračujeme týmto článkom v inštancii instanceOf v Jave.

Tento operátor je tiež známy ako typ operátor porovnania , pretože inštancia sa porovnáva s typom.



Syntax:

(object) instanceof (type)

Nižšie je uvedený príklad operátora instanceOf:

public class Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}

Výkon



pravda

V príklade je výstup vrátený používateľovi pravda , t.j. „ s ”Je inštancia triedy Main.

spracovanie výnimiek pl / sql

Príklad

Objekt typu podtriedy je tiež typom nadradenej triedy.

V nasledujúcom príklade rozširuje spoločnosť Rock hudbu. Na objekt Rock sa môže odkazovať buď v štúdiu Rock, alebo Music.

class Music {} class Rock extends Music {// Rock zdedí Music public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}

Výkon

pravda

Pokračujeme týmto článkom v inštancii instanceOf v Jave.

Použitie premennej s nulovou hodnotou

trieda Hudba {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}

V príklade uvedenom vyššie má definovaná premenná nulovú hodnotu.

Vrátený výstup je teda nepravdivý.

Výkon

nepravdivé

Pri používaní operátora instanceOf je potrebné poznamenať nasledujúci bod:

Pokračujeme týmto článkom v inštancii instanceOf v Jave.

Nadradený objekt nie je inštanciou dieťaťa

class Parent {} class Child extends Parent {} class Main {public static void main (String [] args) {Parent p = new Parent () if (p instanceof Child) System.out.println ('p je inštancia Child ') else System.out.println (' p nie je instancia potomka ')}}

Výkon

P nie je inštanciou dieťaťa

Pokračujeme týmto článkom v inštancii instanceOf v Jave.

Downc asting

Keď sa na objekt nadradenej triedy odkazuje podtrieda, metóda sa nazýva downcasting.

Pri priamom vykonávaní downcastingu kompilátor vráti chybu kompilácie.

Rock r = new Music () // chyba kompilácie

Pri použití obsadenia je ClassCastException vyvolaná za behu programu.

Rock r = (Rock) new Music () // kompilácia úspešná, ale ClassCastException vyhodená

Jedinou metódou, pomocou ktorej je možné downcasting, je použitie operátora instanceof.

kedy to použiť v Jave
class Music {} class Rock extends Music {static void method (Music m) {if (m instanceof Rock) {Rock r = (Rock) m // downcasting System.out.println ('Downcasting Successful')}} public static void main (String [] args) {Music m = new Rock () Rock.method (m)}}

Výkon

Downcasting bol úspešný

Pokračujeme týmto článkom v inštancii instanceOf v Jave.

Pochopenie instanceOf:

Metóda instanceOf môže byť jasnejšie pochopená v príkladoch uvedených nižšie:

Tento príklad využíva rozhranie:

inštancia rozhrania {} trieda S implementuje inštanciu {public void s () {System.out.println ('Prvá metóda')}} trieda T implementuje inštanciu {public void t () {System.out.println ('Druhá metóda') }} class Invoke {void invoke (Instance i) {// upcasting if (i instanceof S) {S s = (S) i // Downcasting ss ()} if (i instanceof T) {T t = (T) i // Downcasting tt ()}}} class Main {public static void main (String args []) {Instance i = new T () Invoke v = new Invoke () v.invoke (i)}}

Výsledok príkladu je nasledovný:
Druhá metóda

Tento príklad demonštruje tento koncept presným spôsobom. Rodičovská trieda je tu inštrument a dve podradné triedy sú gitara a klavír:

class Instrument {} class Guitar extends Instrument {} class Piano extends Instrument {} class Main {public static void main (String [] args) {Instrument i = new Instrument () Guitar g = new Guitar () Piano p = new Piano ( ) System.out.println (g instanceof Instrument) System.out.println (p instanceof Instrument) System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano) i = g System.out.println ( i instanceof Guitar) System.out.println (i instanceof Piano) i = p System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano)}}

Výstup je nasledovný:

pravda

pravda

nepravdivé

nepravdivé

pravda

def __init__ python

nepravdivé

nepravdivé

pravda

Takto sa efektívne vyhľadáva typ objektu. Operátor instanceOf sa ukazuje ako veľmi užitočný, vzhľadom na to, že metódy sú vykonávané správne.

Tak sme sa dostali na koniec tohto článku o „instanceOf v Jave“. Ak sa chcete dozvedieť viac, vyskúšajte Java Training by Edureka, dôveryhodná online vzdelávacia spoločnosť. je navrhnutý tak, aby vás vyškolil pre základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.