Úvod do instanceOf v Javě
instanceOf je třída Java Programming Language Class, která po zavolání vrací booleovskou hodnotu a používá se ke zkoumání vztahu mezi objektem a třídou / rozhraním. Vzhledem ke své schopnosti tyto dva porovnat, je také známý jako „operátor porovnání typu“. Jednoduše se instanceOf používá ke kontrole, zda je objekt jakéhokoli typu, či nikoli, a vrací booleovskou hodnotu, která je buď true, nebo false. InstanceOf je jedním z užitečných operátorů v java, který pomáhá při získávání užitečných informací o objektu v run-time prostředí.
Syntax:
Třída instanceOf se používá ke kontrole, zda je objekt nějaké třídy nebo ne.
obj instanceOf object
Výše je standardní syntaxe třídy instanceOf. Zde je obj název objektu, který musel být vytvořen dříve (odkaz). instanceOf je klíčové slovo a objekt je třída nebo rozhraní, se kterým jsme se shodovali s objektem obj.
V různých případech může být instanceOf prokázána jako velmi užitečná, například kde máme sbírku objektů a nejste si jisti, na který objekt se odkazuje. Příkladem takového případu může být jednoduchá forma s mnoha ovládacími prvky.
Také, pokud v případě, že použijeme instanceOf s proměnnou, která má hodnotu NULL, určitě se vrátí false.
Jak instanceOf funguje?
Operátor instanceOf v java pracuje na jednoduchém vztahu is-a. Jednoduše řečeno, je-vztah je objektově orientovaný koncept, kde porovnáváme nebo říkáme, pracujeme na vztahu mezi abstrakcemi, kde třída A je podtřídou třídy B. Toto je-vztah zcela založený na dědičnosti. Jinými slovy, je to jako říkat: „X je typu Y“.
Nyní si vysvětlíme práci instanceOf spolu s příslušným kódem.
Nejprve vytvoříme třídu s názvem Rodič.
Kód:
Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)
Potom vytvoříme instanci naší třídy rodičů.
Parent child = new Parent();
Nakonec použijeme operátor instanceOf ke kontrole vztahu mezi podřízeným a nadřazeným. Což vypadá takto: child instanceOf Parent
Nyní, jak již bylo zmíněno, syntaxe instanceOf vychází z objektu, který má zkontrolovat, poté klíčové slovo instanceOf a poté třída / rozhraní, se kterým má být daný objekt testován.
V každém okamžiku, kdy se setkáme s klíčovým slovem „rozšíření“ nebo „implementuje“, je v deklaraci třídy jasné znamení, že je použit vztah is-a.
Příklady instanceOf v Javě
Následující příklad ukazuje jednořádkové použití instanceOf.
Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)
Interpretace kódu: Začalo se vytvořením jednoduché třídy instanceof_java. Ve třídě instanceof_java máme svou hlavní třídu av rámci naší hlavní třídy máme vytvořené objekty. Tento objekt je typu instanceof_java. Poté, abychom implementovali práci instanceOf, poskytli jsme výstupní příkaz s objekty s. V posledním řádku jsme předali spolu s klíčovým slovem instanceof a nadřazenou třídou. Po spuštění se kód vrátí „true“, protože objekty typu instance jsou typu.
Pokud máme další objekt, máme-li objekt naší známé třídy nebo rozhraní, ale nepřiřazili jsme ke stejnému objektu žádnou hodnotu, je povinen vrátit false, i když je ve stejné třídě.
Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)
Zde máme podobný kód jako v předchozím příkladu, ale s objektem s nulovou hodnotou. Po spuštění tento kód vrátí false. Jak vidíme, objekt new je instancí instance instance_sample, ale novému je přiřazena hodnota null, která se vrací v false.
Pravidla pro například Provozovatele
Na základě toho, zda objekt ref není null a instance uvedeného typu. Když X je jednoduchá třída odkazovaného objektu a Y je vyřešená třída nebo pole typu rozhraní.
- Když X je jednoduchá třída, pak:
- Jestliže Y je typ třídy, pak X musí být podtřídou Y nebo X musí být stejné třídy jako Y.
- Pokud Y je typ rozhraní, pak třída X musí implementovat rozhraní T.
- Když X je rozhraní typu, pak:
- Pokud Y je typ třídy, pak Y musí být Objekt.
- Y může být stejné jako rozhraní jako X nebo super rozhraní X, pokud Y je typ rozhraní.
- Pokud X je třída, která představuje pole typu SC (), což je pole komponent typu SC, pak:
- Pokud Y je typ třídy, pak Y musí být objekt.
- Pokud Y je typ rozhraní, pak Y musí být typu rozhraní implementovaného maticemi.
Nakonec ukážeme program instanceOf, abychom pochopili, že nadřazený objekt nemůže být instancí podřízené třídy.
Program
class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)
Interpretace kódu: Abychom porozuměli operátoru instanceOf v různých scénářích, napsali jsme výše uvedený kód. Vytvořili jsme jednoduchý předmět třídy, a pak další téma Téma, které rozšiřuje téma Předmět, čímž se třída Téma stává podřízeným a třída Předmět jako rodič zde. Pak další třída s hlavní metodou. V rámci hlavní metody jsme vytvořili novou instanci nadřazené třídy Předmět. Ve smyčce IF ELSE jsme zkontrolovali stav objektu instance s nadřazenou třídou Subject. Pokud by byla podmínka splněna, vrátilo by se „historie je instancí tématu“ a „historie není instancí tématu“, pokud by podmínka selhala.
Po provedení výše uvedeného kódu bude výstupem „historie NENÍ instancí tématu“, což znamená, že podmínka předaná v IF selže. Stalo se to proto, že jsme se pokusili zkontrolovat rodiče objektu „historie“ pomocí třídy Téma. Víme, že třída Téma rozšiřuje předmět Předmět, což znamená, že Téma je podtřídou Předmět. A když jsme se pokusili zkontrolovat typ historie pomocí třídy Téma, vrátí to false (NOT). To znamená, že nadřazený objekt nemůže být instancí třídy.
Výstup:
Závěr - instance v Javě
Dozvěděli jsme se o třídě instanceOf v Javě, která jednoduše rozhodne, zda je objekt daného typu. Pochopili jsme, jak to má vztah na operátora instanceOf. InstanceOf je také známa jako operátor porovnání a je založena na dědičnosti.
Doporučené články
Toto byl průvodce InstanceOf v Javě. Zde diskutujeme o tom, jak InstanceOf v Javě funguje, pravidla s interpretací kódu. Další informace naleznete také v následujících článcích -
- Klíčová slova Java
- Poznámky jazyka Java
- Cheat Sheet JavaScript
- Klíčová slova PHP