InstanceOf u je operator koji se koristi za provjeru vrste objekta. Drugim riječima, ispituje je li objekt primjerak određene klase ili sučelje. Izlaz takve operacije je bilo Pravi ili Lažno
U ovom će članku biti obrađeni sljedeći smjerovi,
- instanceOf
- Korištenje varijable s nulom vrijednosti
- Roditeljski objekt nije primjer djeteta
- Downcasting
- Razumijevanje instanceOf
Nastavljamo s ovim člankom o instanceOf u Javi.
Ovaj je operator poznat i kao tip operator usporedbe , jer se instanca uspoređuje s vrstom.
Sintaksa:
(objekt) instanceof (vrsta)
Primjer operatora instanceOf možete vidjeti u nastavku:
javna klasa Main {javna statička void glavna (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}
Izlaz
pravi
U primjeru je izlaz vraćen korisniku pravi , tj. “ s ”Je instanca klase Main.
Primjer
Objekt podklase tipa također je vrsta roditeljske klase.
U sljedećem primjeru Rock proširuje glazbu. Predmet Rock može se uputiti bilo na klasu Rock ili Music.
class Music {} class Rock produžuje Music {// Rock nasljeđuje glazbu public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}
Izlaz
pravi
Nastavljamo s ovim člankom o instanceOf u Javi.
java razlika između bacanja i bacanja
Korištenje varijable s null vrijednošću
class Music {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}
U gore navedenom primjeru definirana varijabla ima null vrijednost.
Dakle, vraćeni izlaz je netačan.
Izlaz
lažno
Sljedeća se točka mora primijetiti tijekom korištenja instanceOf operatora:
Nastavljamo s ovim člankom o instanceOf u Javi.
Nadređeni objekt nije primjer djeteta
class Parent {} class Child produžuje Parent {} class Main {public static void main (String [] args) {Parent p = new Parent () if (p instanceof Child) System.out.println ('p je primjer Child-a ') else System.out.println (' p nije instanca Child ')}}
Izlaz
P nije primjer djeteta
Nastavljamo s ovim člankom o instanceOf u Javi.
Downc asting
Kada se podrazred odnosi na objekt roditeljske klase, metoda je poznata kao spuštanje.
Nakon izravnog izvođenja downcastinga, kompajler vraća pogrešku kompilacije.
Rock r = nova glazba () // pogreška kompilacije
Pri korištenju tipiziranja, ClassCastException se baca u vrijeme izvođenja.
Rock r = (Rock) nova glazba () // kompilacija uspješna, ali ClassCastException bačen
Jedina metoda kojom je moguće spuštanje podataka je pomoću instanceof operatora.
class Music {} class Rock produžuje Music {static void method (Music m) {if (m instanceof Rock) {Rock r = (Rock) m // downcasting System.out.println ('Downcasting Successful')}} javna statička praznina main (String [] args) {Music m = new Rock () Rock.method (m)}}
Izlaz
Downcasting uspješno
Nastavljamo s ovim člankom o instanceOf u Javi.
Razumijevanje instanceOf:
Metoda instanceOf može se eksplicitnije razumjeti na primjerima datim u nastavku:
Ovaj primjer koristi upotrebu sučelja:
instanca sučelja {} klasa S implementira instancu {javna praznina s () {System.out.println ('Prva metoda')}} klasa T implementira instancu {javna praznina t () {System.out.println ('Druga metoda') }} 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 ()}}} klasa Main {javna statička void glavna (String args []) {Instance i = new T () Invoke v = new Invoke () v.invoke (i)}}
Rezultat primjera je sljedeći:
Druga metoda
Ovaj primjer precizno demonstrira ovaj koncept. Ovdje je roditeljski razred Instrument, a dva dječja razreda su gitara i klavir:
class Instrument {} class Guitar extends Instrument {} class Piano extends Instrument {} class Main {public static void main (String [] args) {Instrument i = novi instrument () Gitara g = nova gitara () Klavir p = novi klavir ( ) 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 primjer gitare) System.out.println (i primjer klavira) i = p System.out.println (i primjer gitare) System.out.println (i primjer klavira)}}
Izlaz je sljedeći:
pravi
pravi
lažno
lažno
pravi
lažno
lažno
pravi
Tako se učinkovito pronalazi vrsta predmeta. Operator instanceOf pokazao se vrlo korisnim, s obzirom na to da se metode izvršavaju na odgovarajući način.
Tako smo došli do kraja ovog članka o 'instanceOf u Javi'. Ako želite saznati više, pogledajte Java Training tvrtke Edureka, pouzdane tvrtke za internetsko učenje. je osmišljen kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.