InstanceOf v Jave Práca a pravidlá inštancieOf v Jave s príkladom

Obsah:

Anonim

Úvod do inštancieOf v Jave

instanceOf je trieda programovacieho jazyka Java, ktorá po zavolaní vráti booleovskú hodnotu a používa sa na preskúmanie vzťahu medzi objektom a triedou / rozhraním. Vďaka svojej schopnosti porovnávať tieto dva údaje sa tiež nazýva „operátor porovnávania typov“. Jednoducho sa inštancia instanceOf používa na kontrolu, či je objekt nejakého typu alebo nie, a vracia booleovskú hodnotu, ktorá je buď true alebo false. InstanceOf je jedným z užitočných operátorov v jave, ktorý pomáha pri získavaní užitočných informácií o objekte v run-time prostredí.

syntaxe:

Trieda instanceOf sa používa na kontrolu, či je objekt nejakej triedy alebo nie.

obj instanceOf object

Hore je štandardná syntax pre triedu instanceOf. Tu je obj názov objektu, ktorý musel byť vytvorený skôr (odkaz). instanceOf je kľúčové slovo a objekt je trieda alebo rozhranie, s ktorým zápasíme s objektom obj.

V rôznych prípadoch sa napríklad môže ukázať, že je veľmi užitočný, napríklad tam, kde máme zbierku objektov a nie ste si istí, na ktorý objekt sa odkazuje. Príkladom takéhoto prípadu môže byť jednoduchá forma s mnohými kontrolami.

Tiež, ak v prípade, že použijeme instanceOf s premennou, ktorá má hodnotu NULL, určite sa vráti false.

Ako inštancia funguje?

Operátor instanceOf v jave pracuje na jednoduchom vzťahu is-a. Jednoducho povedané, je-vzťah je objektovo-orientovaný koncept, kde porovnávame alebo hovoríme, pracujeme na vzťahu medzi abstrakciami, kde trieda A je podtrieda triedy B. Ide o vzťah založený úplne na dedičstve. Inými slovami, je to ako hovoriť: „X je typu Y“.

Teraz pochopme fungovanie inštancie instanceOf spolu s príslušným kódom.

Najprv vytvoríme triedu s názvom Rodič.

kód:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Potom vytvoríme inštanciu triedy Rodičov.

Parent child = new Parent();

Nakoniec použijeme operátor instanceOf na kontrolu vzťahu medzi dieťaťom a rodičom. Čo vyzerá takto: child instanceOf Parent

Ako už bolo spomenuté, syntax pre inštanciu instanceOf pochádza z objektu, ktorý sa musí skontrolovať, potom kľúčové slovo instanceOf a potom trieda / rozhranie, s ktorým sa má daný objekt testovať.

V ktoromkoľvek momente, keď sa stretneme s kľúčovým slovom „rozširuje“ alebo „implementuje“, je to vo vyhlásení o triede jasný znak použitia vzťahu.

Príklady inštancieOf v Jave

Nasledujúci príklad ukazuje použitie jedného riadku instanceOf.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Interpretácia kódu: Začalo sa vytvorením jednoduchej triedy instanceof_java. V triede instanceof_java máme svoju hlavnú triedu av rámci našej hlavnej triedy máme vytvorené objekty. Tento objekt je typu instanceof_java. Potom, aby sme implementovali fungovanie instanceOf, poskytli sme výstupné vyhlásenie s objektmi s. V poslednom riadku sme prešli spolu s kľúčovým slovom instanceof a nadradenou triedou. Po vykonaní sa kód vráti „true“, pretože objekty typu inštancie.

Ak máme ďalší objekt, ak máme objekt našej známej triedy alebo rozhrania, ale nepriradili sme rovnakému objektu žiadnu hodnotu, je povinný vrátiť nepravdivé hodnoty, aj keď je v rovnakej triede.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Tu máme podobný kód ako v predchádzajúcom príklade, ale s objektom s nulovou hodnotou. Po spustení sa tento kód vráti nepravdivý. Ako vidíme, objekt new je inštancia instanceof_sample, ale nové je priradené s nulovou hodnotou, ktorá sa vracia v false.

Pravidlá napríklad prevádzkovateľa

Na základe toho, či objekt č nie je null a je to inštancia uvedeného typu. Keď X je jednoduchá trieda odkazovaného objektu a Y je vyriešená trieda alebo pole typu rozhrania.

  • Ak je X jednoduchá trieda, potom:
  • Ak Y je typ triedy, potom X musí byť podtrieda Y alebo X musí mať rovnakú triedu ako Y.
  • Ak Y je typ rozhrania, potom musí trieda X implementovať rozhranie T.
  • Ak X je typ rozhrania, potom:
  • Ak Y je typ triedy, potom Y musí byť objekt.
  • Y môže byť rovnaké ako rozhranie ako X alebo super rozhranie X, ak Y je typ rozhrania.
  • Ak X je trieda, ktorá predstavuje typ poľa SC (), čo je pole komponentov typu SC, potom:
  • Ak Y je typ triedy, potom Y musí byť objekt.
  • Ak Y je typ rozhrania, potom Y musí byť typu rozhrania implementovaného maticami.

Nakoniec ukážeme program instanceOf, aby sme pochopili, že nadradený objekt nemôže byť inštanciou podradenej triedy.

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");
)
)

Interpretácia kódu: Aby sme pochopili operátora instanceOf v rôznych scenároch, napísali sme vyššie uvedený kód. Vytvorili sme jednoduchý predmet triedy a potom ďalšiu tému Téma, ktorá rozširuje tému Predmet, čím sa téma Téma stáva dieťaťom a Predmet triedy ako rodič. Potom ďalšia trieda s hlavnou metódou. V rámci hlavnej metódy sme vytvorili novú inštanciu rodičovskej triedy Subject. V slučke IF ELSE sme skontrolovali stav objektu inštancie s rodičovskou triedou Subject. Keby bola podmienka splnená, vrátila by „história je inštanciou témy“ a „história NIE JE inštanciou témy“, ak podmienka zlyhá.

Po vykonaní vyššie uvedeného kódu bude výstupom „história NIE JE inštanciou témy“, čo znamená, že stav odovzdaný v prípade zlyhania. Stalo sa to preto, že sme sa snažili skontrolovať rodiča objektu „história“ pomocou triedy Téma. Vieme, že trieda Téma rozširuje predmet Predmet, čo znamená, že Téma je podtrieda Predmet. A keď sme sa snažili skontrolovať typ histórie pomocou triedy Téma, vráti to nepravdivé (NIE). To znamená, že nadradený objekt nemôže byť inštanciou triedy.

Výkon:

Záver v inštancii Java

Dozvedeli sme sa o triede instanceOf v Jave, ktorá jednoducho rozhodne, či je objekt daného typu. Pochopili sme, ako to má vzťah na operátora instanceOf. Inštancia instanceOf, známa tiež ako operátor porovnávania, je založená na dedičstve.

Odporúčané články

Toto bol sprievodca inštanciou InstanceOf v Jave. Tu diskutujeme o tom, ako InstanceOf v Java funguje, pravidlá s interpretáciou kódu. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Kľúčové slová Java
  2. Poznámky jazyka Java
  3. Cheat Sheet JavaScript
  4. Kľúčové slová PHP