Kuidas rakendada instanceAf-i JAVA-s?



See artikkel Java Instancofi kohta tutvustab teile Java instancOf Operatorit ja järgib seda praktilise tutvustusega.

Sissejuhatus on operaator, mida kasutatakse objekti tüübi kontrollimiseks. Teisisõnu testib see, kas objekt on konkreetse klassi eksemplar või liides. Sellise operatsiooni väljund on kas Tõsi või Vale

Järgmisi näpunäiteid käsitletakse selles artiklis,





Selle artikliga edasi liikumine Java-s nt instanceOf.

Seda operaatorit nimetatakse ka tüübiks võrdlusoperaator , kuna eksemplari võrreldakse tüübiga.



Süntaks:

[objekt] (tüübi) esinemine

Operaatori exampleOfi näidet võib näha allpool:

avalik klass Main {avalik staatiline void main (String [] args) {Main s = new Main () System.out.println (s Maini esinemine)}}

Väljund



tõsi

Näites on kasutajale tagastatud väljund tõsi , s.t. ' s ”On klassi Main eksemplar.

Näide

Tüübi alamklassi objekt on ühtlasi vanemklassi tüüp.

Järgmises näites laiendab Rock muusikat. Rocki objektile saab viidata kas Rocki või muusikaklassi järgi.

klass Muusika {} klass Rock laiendab muusikat {// Rock pärib muusika avaliku staatilise void main (String args []) {Rock r = new Rock () System.out.println (Rocki r egent)}}

Väljund

tõsi

Selle artikliga edasi liikumine Java-s nt instanceOf.

Nullväärtusega muutuja kasutamine

klass Muusika {public static void main (String args []) {Muusika m = null System.out.println (muusika eksemplar // vale})

Eespool toodud näites on määratletud muutuja nullväärtus.

Seega on tagastatud väljund vale.

Väljund

vale

Operaatori instanceOf kasutamisel tuleb märkida järgmine punkt:

Selle artikliga edasi liikumine Java-s nt instanceOf.

failide ülekandmine ec2 Linuxi eksemplari

Vanemobjekt ei ole lapse eksemplar

klass Vanem {} klass Laps laiendab vanemat {} klass Peamine {public static void main (String [] args) {Vanem p = new Parent () if (p Lapse laps) System.out.println ('p on lapse eksemplar ') else System.out.println (' p ei ole lapse eksemplar ')}}

Väljund

P ei ole lapse eksemplar

Selle artikliga edasi liikumine Java-s nt instanceOf.

Downc hämmastav

Kui vanemaklassi objektile viitab alamklass, tuntakse meetodit allalaadimisena.

Otse allalaadimise sooritamisel tagastab kompilaator kompileerimisvea.

Rock r = uus muusika () // kompileerimisviga

Tüüpvõrgu kasutamise korral visatakse ClassCastException käitamise ajal.

Rock r = (Rock) uus muusika () // kompileerimine õnnestus, kuid ClassCastException visati

Ainus meetod, kuidas allalaadimine on võimalik, on operaatori instanceof kasutamine.

klass Muusika {} klass Rock laiendab muusikat {staatiline void-meetod (muusika m) {if (m-Rocki eksemplar) {Rock r = (Rock) m // allalaadimissüsteem System.out.println ('Allavajutamine õnnestus')}} avalik staatiline void main (String [] args) {Music m = new Rock () Rock.method (m)}}

Väljund

Allavajutamine õnnestus

Selle artikliga edasi liikumine Java-s nt instanceOf.

Mõistmise instanceOf:

Meetodit instanceOf saab selgemalt mõista allpool toodud näidete abil:

Selles näites kasutatakse liidest:

liidese eksemplar {} klass S rakendab eksemplari {public void s () {System.out.println ('Esimene meetod')}} klass T rakendab eksemplari {public void t () {System.out.println ('Teine meetod') }} klass Invoke {void invoke (eksemplar i) {// upcasting if (i i S-st) {S s = (S) i // Downcasting ss ()} if (i i T-st {T t = (T) i // Downcasting tt ()}}} klass Main {public static void main (String args []) {Esimese astme i = new T () Invoke v = new Invoke () v.invoke (i)}}

Näite väljund on järgmine:
Teine meetod

See näide näitab seda kontseptsiooni täpselt. Siin on vanemateklass Instrument ning kaks lasteklassis on kitarr ja klaver:

klass Pill {} klass Kitarr laiendab pilli {} klass Klaver laiendab pilli {} klass Peamine {avalik staatiline void main (String [] args) {Instrument i = new Instrument () Guitar g = new Guitar () Klaver p = new Piano ( ) System.out.println (g Instrumenti instants) System.out.println (p Instrumenti eksemplar) System.out.println (i kitarri instants) System.out.println (i klaveri instants) i = g System.out.println ( i kitarri eksemplar) System.out.println (i klaveri eksemplar) i = p System.out.println (i kitarri eksemplar) System.out.println (i klaveri eksemplar)}}

Väljund on järgmine:

tõsi

tõsi

vale

vale

java c ++ python

tõsi

vale

vale

tõsi

Nii leitakse objekti tüüp tõhusalt. Operaator instanceOf osutub üsna kasulikuks, arvestades, et meetodid käivitatakse nõuetekohaselt.

Nii oleme jõudnud selle artikli lõppu, mis käsitleb Java-i instantsOf-i. Kui soovite rohkem teada saada, vaadake usaldusväärse veebipõhise õppefirma Edureka Java koolitust. on loodud selleks, et õpetada teid nii põhi- kui ka täiustatud Java-kontseptsioonide jaoks koos erinevate Java-raamistikega, nagu talveunerežiim ja kevad.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.