Jak implementovat InstanceOf v JAVA?



Tento článek o InstanceOf v Javě vám představí Java instancOf Operator a naváže na něj praktickou ukázkou.

InstanceOf In je operátor, který se používá ke kontrole typu objektu. Jinými slovy testuje, zda je objekt instancí konkrétní třídy nebo rozhraní. Výstup takové operace je buď Skutečný nebo Nepravdivé

V tomto článku se budeme zabývat následujícími ukazateli,





Pokračujeme tímto článkem o instanceOf v Javě.

Tento operátor je také známý jako typ operátor porovnání , protože instance je porovnávána s typem.



Syntax:

(object) instanceof (type)

Níže je uveden příklad operátoru instanceOf:

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

Výstup



skutečný

V příkladu je výstup vrácený uživateli skutečný , tj. ' s „Je instance třídy Main.

pomocí r pro strojové učení

Příklad

Objekt podtřídy typu je také typ nadřazené třídy.

V následujícím příkladu rozšiřuje Rock Music. Na předmět Rock lze odkazovat buď ve třídě Rock, nebo Music.

třída Hudba {} třída Rock rozšiřuje hudbu {// Rock dědí hudbu veřejnou statickou void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}

Výstup

skutečný

Pokračujeme tímto článkem o instanceOf v Javě.

Použití proměnné s nulovou hodnotou

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

V příkladu uvedeném výše má definovaná proměnná nulovou hodnotu.

Vrácený výstup je tedy false.

Výstup

Nepravdivé

Při používání operátoru instanceOf je třeba poznamenat následující bod:

Pokračujeme tímto článkem o instanceOf v Javě.

Nadřazený objekt není instancí Child

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 instance of Child ') else System.out.println (' p není instancí Child ')}}

Výstup

P není instancí Child

Pokračujeme tímto článkem o instanceOf v Javě.

Downc poutavý

Když se na objekt nadřazené třídy odkazuje podtřída, metoda se nazývá downcasting.

Při přímém provádění downcastingu kompilátor vrátí chybu kompilace.

Rock r = new Music () // chyba kompilace

Při použití Typecastingu je ClassCastException vyvolána za běhu.

Rock r = (Rock) new Music () // kompilace úspěšná, ale ClassCastException vyvolána

Jedinou metodou, pomocí které je možné downcasting, je použití operátoru instanceof.

kdy to použít v Javě
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ýstup

Downcasting byl úspěšný

Pokračujeme tímto článkem o instanceOf v Javě.

Porozumění instanceOf:

Metodu instanceOf lze lépe pochopit pomocí níže uvedených příkladů:

Tento příklad umožňuje použití rozhraní:

instance rozhraní {} třída S implementuje instanci {public void s () {System.out.println ('First method')}} třída T implementuje instanci {public void t () {System.out.println ('Second method') }} třída 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 ()}}} třída Main {public static void main (String args []) {Instance i = new T () Invoke v = new Invoke () v.invoke (i)}}

Výstup příkladu je následující:
Druhá metoda

Tento příklad přesně ukazuje tento koncept. Tady je mateřská třída Instrument a dvě podřízené třídy jsou Guitar a Piano:

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 následující:

skutečný

skutečný

Nepravdivé

Nepravdivé

skutečný

co je anakonda pro python

Nepravdivé

Nepravdivé

skutečný

Takto je efektivně nalezen typ objektu. Operátor instanceOf se ukazuje jako docela užitečný, vzhledem k tomu, že jsou metody prováděny správně.

Tak jsme dospěli ke konci tohoto článku o „instanceOf v Javě“. Pokud se chcete dozvědět více, podívejte se na Java Training by Edureka, důvěryhodná online vzdělávací společnost. je navržen tak, aby vás naučil jak základní, tak pokročilé koncepty Java spolu s různými rámci Java, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu a my se vám ozveme co nejdříve.