InstanceOf In è un operatore, che viene utilizzato per controllare il tipo di un oggetto. In altri termini, verifica se l'oggetto è un'istanza di una classe specifica o un'interfaccia. Il risultato di tale operazione è l'uno o l'altro Vero o Falso
I seguenti suggerimenti saranno trattati in questo articolo,
- instanceOf
- Utilizzo di una variabile con valore nullo
- Un oggetto Parent non è un'istanza di figlio
- Downcasting
- Capire instanceOf
Andando avanti con questo articolo su instanceOf in Java.
Questo operatore è noto anche come tipo operatore di confronto , poiché l'istanza viene confrontata con il tipo.
Sintassi:
(oggetto) istanza di (tipo)
Di seguito è possibile vedere un esempio dell'operatore instanceOf:
come installare eclipse windows
public class Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}
Produzione
vero
Nell'esempio, l'output restituito all'utente è vero , cioè ' S 'È un'istanza della classe Main.
Esempio
Un oggetto di tipo sottoclasse è anche un tipo di classe genitore.
Nell'esempio seguente, Rock estende Music. L'oggetto del Rock può essere riferito dalla classe Rock o Music.
class Music {} class Rock extends Music {// Rock inherits Music public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}
Produzione
vero
Andando avanti con questo articolo su instanceOf in Java.
Utilizzo di una variabile con valore nullo
class Music {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}
Nell'esempio riportato sopra, la variabile definita ha un valore nullo.
Pertanto, l'output restituito è falso.
Produzione
falso
Il punto seguente deve essere notato durante l'utilizzo dell'operatore instanceOf:
Andando avanti con questo articolo su instanceOf in Java.
Un oggetto padre non è un'istanza di 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 è un'istanza di Child ') else System.out.println (' p non è un'istanza di Child ')}}
Produzione
P non è un'istanza di Child
Andando avanti con questo articolo su instanceOf in Java.
Downc asting
Quando un oggetto della classe Parent viene indicato da una sottoclasse, il metodo è noto come downcasting.
impara a usare visual studio
Quando si esegue direttamente il downcast, il compilatore restituisce un errore di compilazione.
Rock r = new Music () // errore di compilazione
Quando si utilizza il typecasting, ClassCastException viene generata in fase di esecuzione.
Rock r = (Rock) new Music () // compilazione riuscita ma ClassCastException generata
L'unico metodo con cui è possibile il downcasting è utilizzare l'operatore instanceof.
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)}}
Produzione
Abbattimento riuscito
Andando avanti con questo articolo su instanceOf in Java.
Capire instanceOf:
Il metodo instanceOf può essere compreso in modo più esplicito dagli esempi forniti di seguito:
Questo esempio fa uso di un'interfaccia:
interfaccia Istanza {} classe S implementa Istanza {public void s () {System.out.println ('Primo metodo')}} classe T implementa Istanza {public void t () {System.out.println ('Secondo metodo') }} class 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 ()}}} class Main {public static void main (String args []) {Instance i = new T () Invoke v = new Invoke () v.invoke (i)}}
L'output dell'esempio è il seguente:
Secondo metodo
Questo esempio dimostra questo concetto in modo preciso. Qui, la classe genitore è Strumento e le due classi figlie sono Chitarra e Pianoforte:
class Strumento {} class Guitar extends Strumento {} class Piano extends Strumento {} 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)}}
L'output è il seguente:
vero
vero
falso
falso
le stringhe in java sono immutabili
vero
falso
falso
vero
Questo è il modo in cui il tipo di un oggetto viene trovato in modo efficiente. L'operatore instanceOf si rivela abbastanza utile, dato che i metodi vengono eseguiti in modo appropriato.
Così siamo giunti alla fine di questo articolo su 'instanceOf in Java'. Se desideri saperne di più, dai un'occhiata al Java Training di Edureka, una società di formazione online affidabile. è progettato per addestrarti sia ai concetti di base che avanzati a Java insieme a vari framework Java come Hibernate e Spring.
Hai domande per noi? Per favore, menzionalo nella sezione commenti di questo blog e ti risponderemo il prima possibile.