- istanza Java di
- Esempio di operatore istanzaof
- Applicando l'operatore istanzaof con una variabile il valore è nullo
- Downcasting con operatore istanza
- Downcasting senza istanza dell'operatore
IL operatore di istanza Java viene utilizzato per verificare se l'oggetto è un'istanza del tipo specificato (classe, sottoclasse o interfaccia).
L'istanza di Java è anche conosciuta come tipo operatore di confronto perché confronta l'istanza con il tipo. Restituisce vero o falso. Se applichiamo l'operatore istanzaof con qualsiasi variabile che abbia valore null, restituisce false.
Semplice esempio di istanza Java
Vediamo il semplice esempio dell'operatore di istanza in cui testa la classe corrente.
class Simple1{ public static void main(String args[]){ Simple1 s=new Simple1(); System.out.println(s instanceof Simple1);//true } }Provalo adesso
Output:true
Un oggetto di tipo sottoclasse è anche un tipo di classe genitore. Ad esempio, se Dog estende Animal, l'oggetto Dog può essere riferito alla classe Dog o Animal.
Un altro esempio di operatore di istanza Java
class Animal{} class Dog1 extends Animal{//Dog inherits Animal public static void main(String args[]){ Dog1 d=new Dog1(); System.out.println(d instanceof Animal);//true } }Provalo adesso
Output:true
istanza di Java con una variabile che ha valore nullo
Se applichiamo l'operatore istanza di con una variabile che ha valore null, restituisce false. Vediamo l'esempio fornito di seguito in cui applichiamo l'operatore istanza di con la variabile che ha valore null.
class Dog2{ public static void main(String args[]){ Dog2 d=null; System.out.println(d instanceof Dog2);//false } }Provalo adesso
Output:false
Downcasting con l'operatore di istanza Java
Quando il tipo di sottoclasse si riferisce all'oggetto della classe genitore, è noto come downcasting. Se lo eseguiamo direttamente, il compilatore restituisce un errore di compilazione. Se lo esegui tramite typecasting, ClassCastException viene generata in fase di runtime. Ma se usiamo l'operatore istanza dell'operatore, è possibile il downcasting.
Dog d=new Animal();//Compilation error
Se eseguiamo il downcasting tramite typecasting, ClassCastException viene lanciata in fase di runtime.
Dog d=(Dog)new Animal(); //Compiles successfully but ClassCastException is thrown at runtime
Possibilità di downcasting con istanza di
Vediamo l'esempio in cui il downcasting è possibile tramite l'operatore istanzaof.
class Animal { } class Dog3 extends Animal { static void method(Animal a) { if(a instanceof Dog3){ Dog3 d=(Dog3)a;//downcasting System.out.println('ok downcasting performed'); } } public static void main (String [] args) { Animal a=new Dog3(); Dog3.method(a); } }Provalo adesso
Output:ok downcasting performed
Downcasting senza l'uso di Java exampleof
Il downcasting può essere eseguito anche senza l'utilizzo dell'operatore istanzaof, come mostrato nell'esempio seguente:
class Animal { } class Dog4 extends Animal { static void method(Animal a) { Dog4 d=(Dog4)a;//downcasting System.out.println('ok downcasting performed'); } public static void main (String [] args) { Animal a=new Dog4(); Dog4.method(a); } }Provalo adesso
Output:ok downcasting performed
Diamo un'occhiata più da vicino a questo oggetto reale a cui fa riferimento a, è un oggetto della classe Dog. Quindi se lo abbassiamo, va bene. Ma cosa accadrà se scriviamo:
Animal a=new Animal(); Dog.method(a); //Now ClassCastException but not in case of instanceof operator
Comprensione dell'uso reale di exampleof in Java
Vediamo l'uso reale della parola chiave exampleof con l'esempio fornito di seguito.
interface Printable{} class A implements Printable{ public void a(){System.out.println('a method');} } class B implements Printable{ public void b(){System.out.println('b method');} } class Call{ void invoke(Printable p){//upcasting if(p instanceof A){ A a=(A)p;//Downcasting a.a(); } if(p instanceof B){ B b=(B)p;//Downcasting b.b(); } } }//end of Call class class Test4{ public static void main(String args[]){ Printable p=new B(); Call c=new Call(); c.invoke(p); } }Provalo adesso
Output: b method