InOxference ir operators, kuru izmanto, lai pārbaudītu objekta tipu. Citiem vārdiem sakot, tas pārbauda, vai objekts ir noteiktas klases vai saskarnes gadījums. Šādas operācijas rezultāts ir vai nu Patiesi vai Nepatiesa
Šajā rakstā tiks apskatīti šādi norādījumi,
kas ir datu vizualizācija tabulā
- instanceOf
- Mainīgā ar nulles vērtību izmantošana
- Vecāku objekts nav bērna eksemplārs
- Pazemināšana
- Izpratne instanceOf
Turpinot šo rakstu par Java, piemēram, Java.
Šis operators ir pazīstams arī kā tips salīdzināšanas operators , jo gadījumu salīdzina ar tipu.
Sintakse:
(objekts) (veida) instance
Operatora instanceOf piemērs ir redzams zemāk:
public class Main {public static void main (String [] args) {Main s = new Main () System.out.println (s Mainof galvenās instances)}}
Rezultāts
taisnība
Piemērā lietotājam atgrieztā izeja ir taisnība , t.i. “ s ”Ir Main klases eksemplārs.
Piemērs
Apakšklases objekts ir arī vecāku klases tips.
Šajā piemērā Roks paplašina mūziku. Roka objektu var norādīt vai nu Roka, vai Mūzikas klase.
klase Mūzika {} klase Roks paplašina mūziku {// Roks pārmanto Mūziku publiskā statiskā tukšums main (String args []) {Roks r = new Rock () System.out.println (R roka no Rock)}}
Rezultāts
taisnība
Turpinot šo rakstu par Java, piemēram, Java.
Izmantojot mainīgo ar nulles vērtību
klases mūzika {public static void main (String args []) {Mūzika m = null System.out.println (m mūzikas eksemplārs) // nepatiesa}}
Iepriekš sniegtajā piemērā definētajam mainīgajam ir nulles vērtība.
Tādējādi atgrieztā produkcija ir nepatiesa.
Rezultāts
nepatiesa
Lietojot operatoru instanceOf, jāņem vērā šāds punkts:
Turpinot šo rakstu par Java, piemēram, Java.
Vecāku objekts nav bērna eksemplārs
klase Vecāks {} klase Bērns pagarina Vecāku {} klase Galvenais {publiskais statiskais tukšums galvenais (virkne [] argumenti) {Vecāks p = jauns vecāks () if (p Bērna gadījums) System.out.println ('p ir Bērna gadījums ') else System.out.println (' p nav bērna eksemplārs ')}}
Rezultāts
P nav Bērna gadījums
Turpinot šo rakstu par Java, piemēram, Java.
Downc pārsteidzošs
Kad uz vecāku klases objektu atsaucas apakšklase, metodi sauc par downcasting.
Tieši veicot downcasting, kompilators atgriež kompilēšanas kļūdu.
Rock r = new Music () // sastādīšanas kļūda
Izmantojot rakstīšanas veidu, ClassCastException tiek izmests izpildlaikā.
Roks r = (Roks) jaunā mūzika () // kompilācija ir veiksmīga, bet ClassCastException ir iemesta
Vienīgā metode, kā ir iespējama pazemināšana, ir operatora instanceof izmantošana.
klase Mūzika {} klase Roka paplašina Mūziku {static void metode (Mūzika m) {if (Roka m gadījums) {Rock r = (Rock) m // downcasting System.out.println ('Downcasting Successful')}} public static void main (Stīgu [] argumenti) {Mūzika m = new Rock () Rock.metode (m)}}
Rezultāts
Downcasting veiksmīgs
Turpinot šo rakstu par Java, piemēram, Java.
Izpratne instanceOf:
Metodi instanceOf var precīzāk saprast ar tālāk sniegtajiem piemēriem:
Šajā piemērā tiek izmantota saskarne:
saskarnes instance {} klase S ievieš instanci {public void s () {System.out.println ('Pirmā metode')}} T klase ievieš instanci {public void t () {System.out.println ('Otrā metode') }} klase Izsaukt {void invoke (instance i) {// upcasting if (i instance of S) {S s = (S) i // Downcasting ss ()} if (i instancē T) {T t = (T) i // Downcasting tt ()}}} klase Main {public static void main (String args []) {instance i = new T () Invoke v = new Invoke () v.invoke (i)}}
Piemēra rezultāts ir šāds:
Otrā metode
Šis piemērs precīzi parāda šo jēdzienu. Šeit vecāku klase ir Instruments, un divas bērnu klases ir ģitāra un klavieres:
klase Instruments {} klase Ģitāra pagarina Instrumentu {} klase Klavieres izpleš Instrumentu {} klase Galvenā {public static void main (String [] args) {Instruments i = new Instrument () Guitar g = new Guitar () Klavieres p = new Piano ( ) System.out.println (instrumenta g instance) System.out.println (instrumenta p instance) System.out.println (i ģitāras instancē) System.out.println (i klavieru instancē) i = g System.out.println ( i ģitāras instancē) System.out.println (i klavieru instancē) i = p System.out.println (i ģitāras instancē) System.out.println (i klavierēs)}}
Rezultāts ir šāds:
taisnība
taisnība
nepatiesa
nepatiesa
taisnība
nepatiesa
nepatiesa
taisnība
kāda ir galvenā kļūda
Šādi efektīvi tiek atrasts objekta tips. Operators instanceOf izrādās diezgan noderīgs, ņemot vērā to, ka metodes tiek izpildītas atbilstoši.
Tādējādi esam nonākuši pie šī raksta par “instanceOf in Java” beigām. Ja vēlaties uzzināt vairāk, skatiet uzticamo tiešsaistes mācību uzņēmumu Edureka Java apmācību. ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem, kā arī dažādiem Java ietvariem, piemēram, Hibernate & Spring.
Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.