InstanceOf In és un operador que s'utilitza per comprovar el tipus d'objecte. En altres termes, prova si l'objecte és una instància d'una classe específica o una interfície. La sortida d'aquesta operació és qualsevol És cert o bé Fals
què és una interfície de marcador a Java
Les següents indicacions es tractaran en aquest article,
- en lloc de
- Utilització d’una variable amb valor nul
- Un objecte pare no és una instància de nen
- Downcasting
- Comprensió d’instància
Continuem amb aquest article sobre instanceOf a Java.
Aquest operador també es coneix com a tipus operador de comparació , ja que es compara la instància amb el tipus.
Sintaxi:
(objecte) instanceof (tipus)
A continuació es pot veure un exemple de l’operador instanceOf:
public class Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}
Sortida
cert
A l'exemple, la sortida retornada a l'usuari és cert , és a dir, ' s ”És una instància de la classe Main.
Exemple
Un objecte de tipus subclasse també és un tipus de classe pare.
A l'exemple següent, el rock estén la música. L'objecte del Rock es pot referir tant a la classe de Rock com a Música.
class Music {} class Rock extends Music {// Rock herets Music public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}
Sortida
cert
Continuem amb aquest article sobre instanceOf a Java.
Utilització d’una variable amb valor nul
class Music {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}
A l'exemple anterior, la variable definida té un valor nul.
Per tant, la sortida retornada és falsa.
Sortida
fals
Cal tenir en compte el següent punt mentre s’utilitza l’operador instanceOf:
Continuem amb aquest article sobre instanceOf a Java.
Un objecte pare no és una instància de 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 is a instance of Child ') else System.out.println (' p no és una instància de Child ')}}
Sortida
P no és una instància de Child
Continuem amb aquest article sobre instanceOf a Java.
Downc espantant
Quan una subclase fa referència a un objecte de la classe pare, el mètode es coneix com a downcasting.
En realitzar directament el descens, el compilador retorna un error de compilació.
Rock r = new Music () // error de compilació
Quan s’utilitza la tipografia, ClassCastException s’executa en temps d’execució.
Rock r = (Rock) new Music () // compilació reeixida però ClassCastException llançada
L'únic mètode mitjançant el qual és possible el descens és utilitzar l'operador instanceof.
classe Música {} classe Rock estén Música {mètode de buit estàtic (Música m) {if (m instància de Rock) {Rock r = (Rock) m // downcasting System.out.println ('Downcasting Successful')}} public static void main (String [] args) {Música m = new Rock () Rock.method (m)}}
Sortida
Downcasting Èxit
Continuem amb aquest article sobre instanceOf a Java.
Comprensió de la instància de:
El mètode instanceOf es pot entendre de manera més explícita mitjançant els exemples següents:
Aquest exemple fa ús d'una interfície:
interfície Instància {} classe S implementa Instància {public void s () {System.out.println ('First method')}} classe T implementa Instance {public void t () {System.out.println ('Second method') }} 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)}}
La sortida de l’exemple és la següent:
Segon mètode
Aquest exemple demostra aquest concepte d'una manera precisa. Aquí, la classe principal és Instrument i les dues classes infantils són guitarra i piano:
classe Instrument {} class Guitar extends Instrument {} class Piano extends Instrument {} 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)}}
La sortida és la següent:
cert
cert
fals
fals
cert
fals
fals
cert
Així es troba el tipus d'objecte de manera eficient. L'operador instanceOf demostra ser força útil, ja que els mètodes s'executen adequadament.
Així hem arribat al final d’aquest article sobre ‘instanceOf in Java’. Si voleu obtenir més informació, consulteu el programa Java Training by Edureka, una empresa d’aprenentatge en línia de confiança. està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java juntament amb diversos marcs Java com Hibernate & Spring.
Tens alguna pregunta? Si us plau, mencioneu-ho a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.