InstanceOf in Java - Werken & regels van instanceOf in Java met voorbeeld

Inhoudsopgave:

Anonim

Inleiding tot instanceOf in Java

instanceOf is een Java Programming Language Class, die, wanneer deze wordt aangeroepen, een Booleaanse waarde retourneert en wordt gebruikt om de relatie tussen Object en een klasse / interface te onderzoeken. Vanwege zijn vermogen om deze twee te vergelijken, staat het ook bekend als "typevergelijkingsoperator". Gewoon, instanceOf wordt gebruikt om te controleren of een object van een willekeurig type is of niet, en het retourneert een booleaanse waarde die waar of onwaar is. InstanceOf is een van de nuttige operators in Java, die helpt bij het verkrijgen van nuttige informatie over een object in een runtime-omgeving.

Syntaxis:

De klasse instanceOf wordt gebruikt om te controleren of het object van een klasse is of niet.

obj instanceOf object

Hierboven staat de standaardsyntaxis voor bijvoorbeeld class. Hier is de obj de naam van het object dat eerder moet zijn gemaakt (referentie). instanceOf is het trefwoord en het object is de klasse of de interface waarmee we overeenkomen met het object obj.

In verschillende gevallen kan worden aangetoond dat instanceOf van groot nut is, zoals wanneer we een verzameling objecten hebben en u niet zeker weet naar welk object het verwijst. Een voorbeeld van een dergelijk geval kan een eenvoudige vorm met veel bedieningselementen zijn.

Als we bijvoorbeeld instanceOf gebruiken met een variabele die een NULL-waarde heeft, retourneert dit zeker false.

Hoe instanceof werken?

De operator instanceOf in Java werkt aan een eenvoudige is-een-relatie. Eenvoudig stellen, is-een relatie is een object-georiënteerd concept, waarbij we vergelijken of zeggen werken aan een relatie tussen abstracties, waarbij klasse A een subklasse is van klasse B. Dit is-een relatie volledig gebaseerd op overerving. Met andere woorden, het is alsof je zegt: "X is van het Y-type".

Laten we nu de werking van instanceOf begrijpen, samen met de bijbehorende code.

Eerst maken we een klasse met de naam Ouder.

Code:

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

We zullen dan een instantie van onze ouderklasse maken.

Parent child = new Parent();

Ten slotte zullen we de operator instanceOf gebruiken om de relatie tussen kind en ouder te controleren. Dat gaat als volgt: child instanceOf Parent

Zoals eerder vermeld, gaat de syntaxis bijvoorbeeld vanOf van een object dat moet worden gecontroleerd, vervolgens het trefwoord instanceOf en vervolgens de klasse / interface waarmee het gegeven object moet worden getest.

Op elk punt waar we tegenkomen met het trefwoord 'uitbreiding' of 'werktuigen', in een klasseverklaring, is dit een duidelijk teken dat er een relatie wordt gebruikt.

Voorbeelden van instanceOf in Java

In het volgende voorbeeld wordt een enkele regelgebruik van instanceOf getoond.

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

Code-interpretatie: begonnen met het maken van een eenvoudige klasse instanceof_java. In de klasse instanceof_java hebben we onze hoofdklasse en binnen onze hoofdklasse hebben we een object gemaakt. Dit object s is van het type instanceof_java. Vervolgens hebben we de uitvoer van instanceOf geïmplementeerd en hebben we een uitvoerinstructie gegeven met object s. In de laatste regel hebben we s doorgegeven samen met het exemplaar van trefwoord en de bovenliggende klasse. Bij uitvoering retourneert de code 'true', omdat het object s van het type instance is.

Als we verder gaan, als we een object van onze bekende klasse of interface hebben maar we geen waarde aan hetzelfde object hebben toegewezen, zal het onwaar terugkeren, ook al behoort het tot dezelfde klasse.

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

Hier hebben we dezelfde code als we eerder hadden, maar met een nulwaardeobject. Wanneer uitgevoerd, zal deze code false retourneren. Zoals we kunnen zien, is object nieuw de instantie van instanceof_sample, maar wordt aan new een nulwaarde toegewezen, die in false terugkeert.

Regels bijvoorbeeld van operator

Gebaseerd op of het object ref is niet null en een instantie van het verwezen type. Wanneer X de eenvoudige klasse is van het object waarnaar wordt verwezen en Y de opgeloste klasse of een array van een interfacetype.

  • Wanneer X een eenvoudige klasse is, dan:
  • Als Y een klasse type is, moet de X een subklasse van Y zijn of X moet dezelfde klasse zijn als Y.
  • Als Y een interfacetype is, moet de X-klasse interface T implementeren.
  • Wanneer X type interface is, dan:
  • Als Y een klassetype is, moet de Y een object zijn.
  • Y kan hetzelfde zijn als de interface als X of superinterface van X als Y een interfacetype is.
  • Als X een klasse is die het arraytype SC () vertegenwoordigt, wat een array van type SC-componenten is, dan:
  • Als Y een klassetype is, moet Y een object zijn.
  • Als Y een interfacetype is, moet Y van het interfacetype zijn dat wordt geïmplementeerd door arrays.

Ten slotte zullen we een instantie van programma demonstreren om te begrijpen dat het bovenliggende object geen instantie van de onderliggende klasse kan zijn.

Programma

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

Code-interpretatie: om de operator instanceOf in verschillende scenario's te begrijpen, hebben we de bovenstaande code geschreven. We hebben een eenvoudig onderwerp van de klasse gemaakt en vervolgens een ander onderwerp van de klasse, dat het onderwerp Onderwerp uitbreidt, waardoor het onderwerp Onderwerp als kind en het onderwerp Onderwerp als ouder hier worden gemaakt. Dan nog een klas met de hoofdmethode. Binnen de hoofdmethode hebben we een nieuw exemplaar van bovenliggende klasse Onderwerp gemaakt. In de IF ELSE-lus hebben we de toestand van het exemplaarobject gecontroleerd met de bovenliggende klasse Onderwerp. Als aan de voorwaarde was voldaan, zou het terugkeren "geschiedenis is een instantie van onderwerp" en "geschiedenis is GEEN instantie van onderwerp" als de voorwaarde faalt.

Bij het uitvoeren van de bovenstaande code is de uitvoer "geschiedenis is GEEN instantie van Onderwerp", wat betekent dat de voorwaarde die is doorgegeven in IF mislukt. Het gebeurde omdat we probeerden de ouder van het object 'geschiedenis' te controleren met de klasse Onderwerp. We weten dat de klasse Onderwerp de klasse Onderwerp uitbreidt, wat betekent dat Onderwerp een subklasse is van Onderwerp. En toen we probeerden het type geschiedenis te controleren met klasse Onderwerp, retourneert het onwaar (NIET). Dit betekent dat het bovenliggende object geen instantie van een klasse kan zijn.

Output:

Conclusie instantie van Java

We hebben op Java de instantie instanceOf geleerd, die eenvoudigweg beslist of het object van het gegeven type is. We begrepen hoe een relatie van invloed is op de operator instanceOf. InstanceOf, ook bekend als vergelijkingsoperator, is gebaseerd op overerving.

Aanbevolen artikelen

Dit is een handleiding voor InstanceOf in Java geweest. Hier bespreken we hoe InstanceOf in Java werkt, regels met code-interpretatie. U kunt ook de volgende artikelen bekijken voor meer informatie -

  1. Java-zoekwoorden
  2. Java-annotaties
  3. Cheatsheet JavaScript
  4. PHP-zoekwoorden