Introduzione all'istanza di Java
instanceOf è una classe di linguaggio di programmazione Java, che quando viene chiamata restituisce un valore booleano e viene utilizzata per esaminare la relazione tra Object e una classe / interfaccia. Grazie alla sua capacità di confrontare questi due, è anche noto come "operatore di confronto dei tipi". Semplicemente, instanceOf viene utilizzato per verificare se un oggetto è di qualsiasi tipo o meno e restituisce un valore booleano che è vero o falso. InstanceOf è uno degli operatori utili in Java, che aiuta a ottenere informazioni utili su un oggetto, in un ambiente di runtime.
Sintassi:
La classe instanceOf viene utilizzata per verificare se l'oggetto appartiene a una classe o meno.
obj instanceOf object
Sopra è la sintassi standard per la classe instanceOf. Qui, obj è il nome dell'oggetto che deve essere stato creato in precedenza (riferimento). instanceOf è la parola chiave e l'oggetto è la classe o l'interfaccia con cui corrispondiamo all'oggetto obj.
In vari casi, può essere dimostrato che instanceOf è di grande utilità, come nel caso in cui abbiamo una raccolta di oggetti e non sei sicuro di quale oggetto si riferisca. Un esempio di un caso del genere può essere una forma semplice con molti controlli.
Inoltre, se nel caso in cui utilizziamo instanceOf con una variabile che ha un valore NULL, è sicuro che restituirà false.
Come funziona l'istanza di?
L'operatore instanceOf di java lavora su una semplice relazione is-a. Semplicemente affermando, è-una relazione è un concetto orientato agli oggetti, in cui confrontiamo o diciamo, lavorare su una relazione tra astrazioni, dove la classe A è una sottoclasse della classe B. Questa è-una relazione totalmente basata sull'eredità. In altre parole, è come dire "X è di tipo Y".
Ora, capiamo il funzionamento di instanceOf, insieme al rispettivo codice.
Innanzitutto, creeremo una classe chiamata Parent.
Codice:
Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)
Creeremo quindi un'istanza della nostra classe Parent.
Parent child = new Parent();
Infine, utilizzeremo l'operatore instanceOf per verificare la relazione tra figlio e genitore. Che va così: istanza figlio di Parent
Ora, come accennato in precedenza, la sintassi per instanceOf passa da un oggetto che deve controllare, quindi la parola chiave instanceOf e quindi la classe / interfaccia con cui deve essere testato l'oggetto specificato.
In qualsiasi momento in cui incontriamo la parola chiave "estende" o "implementa", in una dichiarazione di classe, è un chiaro segno di essere una relazione utilizzata.
Esempi di istanza di Java
L'esempio seguente mostra un uso a riga singola di instanceOf.
Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)
Interpretazione del codice: iniziata con la creazione di una semplice classe instanceof_java. Nella classe instanceof_java, abbiamo la nostra classe principale e all'interno della nostra classe principale, abbiamo creato un oggetto. Questo oggetto è di tipo instanceof_java. Quindi per implementare il funzionamento di instanceOf, abbiamo fornito un'istruzione output con oggetto s. Nell'ultima riga, abbiamo passato s insieme alla parola chiave instanceof e alla classe genitore. Al momento dell'esecuzione, il codice restituirà 'true', poiché l'oggetto s è di tipo istanza.
Andando oltre, se abbiamo un oggetto della nostra classe o interfaccia nota ma non abbiamo assegnato alcun valore allo stesso oggetto, è destinato a restituire false, anche se appartenente alla stessa classe.
Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)
Qui abbiamo un codice simile a quello che avevamo nell'esempio precedente, ma con un oggetto con valore null. Quando eseguito, questo codice restituirà false. Come possiamo vedere, oggetto new è l'istanza di instanceof_sample, ma new viene assegnato con un valore null, che restituisce false.
Regole per esempio dell'Operatore
In base al fatto se l'oggetto rif non è null e un'istanza del tipo indicato. Quando X è la classe semplice dell'oggetto indicato e Y è la classe risolta o un array di un tipo di interfaccia.
- Quando X è una classe semplice, allora:
- Se Y è un tipo di classe, allora X deve essere una sottoclasse di Y o X deve avere la stessa classe di Y.
- Se Y è un tipo di interfaccia, la classe X deve implementare l'interfaccia T.
- Quando X è l'interfaccia di tipo, quindi:
- Se Y è un tipo di classe, allora Y deve essere un oggetto.
- Y può essere uguale all'interfaccia di X o alla super interfaccia di X se Y è un tipo di interfaccia.
- Se X è una classe, che rappresenta il tipo di array SC (), che è un array di componenti di tipo SC, quindi:
- Se Y è un tipo di classe, allora Y deve essere un oggetto.
- Se Y è un tipo di interfaccia, allora Y deve essere del tipo di interfaccia implementato dagli array.
Infine, dimostreremo un programma instanceOf per capire che l'oggetto parent non può essere un'istanza della classe child.
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");
)
)
Interpretazione del codice: allo scopo di comprendere l'operatore dell'istanza di diversi scenari, abbiamo scritto il codice sopra. Abbiamo creato un soggetto di classe semplice, quindi un altro argomento di classe, che estende l'oggetto di classe, rendendo la classe Argomento come figlio e oggetto di classe come genitore qui. Quindi un'altra classe con il metodo principale. All'interno del metodo principale, abbiamo creato una nuova istanza della classe genitore Subject. Nel ciclo IF ELSE, abbiamo verificato le condizioni dell'oggetto di istanza con la classe genitore Subject. Se la condizione fosse soddisfatta, restituirebbe "la cronologia è un'istanza di Argomento" e "la cronologia NON è un'istanza di Argomento" se la condizione fallisce.
Dopo aver eseguito il codice precedente, l'output sarà "la cronologia NON è un'istanza di Argomento", il che significa che la condizione passata in IF non riesce. È successo perché abbiamo cercato di controllare il genitore dell'oggetto "history" con la classe Topic. Sappiamo che la classe Argomento estende la classe Soggetto, il che significa che Argomento è una sottoclasse di Soggetto. E quando abbiamo provato a controllare il tipo di cronologia con Argomento di classe, restituisce false (NOT). Ciò significa che l'oggetto principale non può essere un'istanza di una classe.
Produzione:
Conclusione - istanza di Java
Abbiamo imparato a conoscere la classe instanceOf in Java, che decide semplicemente se l'oggetto è del tipo specificato. Abbiamo capito in che modo la relazione è-ha un impatto sull'istanza dell'operatore. Conosciuto anche come operatore di confronto, instanceOf si basa sull'ereditarietà.
Articoli consigliati
Questa è stata una guida a InstanceOf in Java. Qui discutiamo di come InstanceOf in Java funziona, regole con interpretazione del codice. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -
- Parole chiave Java
- Annotazioni Java
- Cheat Sheet JavaScript
- Parole chiave PHP