NäiteksOna Java-s - Toimimine ja Java reeglite reeglid näites

Lang L: none (table-of-contents):

Anonim

Java tutvustus instanOf-ile

instanceOf on Java programmeerimiskeele klass, mille kutsumisel tagastatakse tõeväärtus ja seda kasutatakse objekti ja klassi / liidese vahelise seose uurimiseks. Tänu võimele neid kahte võrrelda, on see tuntud ka kui „tüübi võrdlusoperaator“. Lihtsalt kasutatakse instanceOf-i kontrollimaks, kas objekt on mis tahes tüüpi või mitte, ja see tagastab tõeväärtuse, mis on tõene või vale. InstanceOf on üks java abistavaid operaatoreid, mis aitab käituskeskkonnas objekti kohta kasulikku teavet saada.

Süntaks:

Klassi instanceOf kasutatakse kontrollimaks, kas objekt kuulub mõnda klassi või mitte.

obj instanceOf object

Ülal on tavaline süntaks näiteks classOf jaoks. Siin on obj objekti nimi, mis peab olema varem loodud (viide). instanceOf on märksõna ja objekt on klass või liides, millega me sobitame obj objekti.

Mitmel juhul võib tõestada, et instanceOf on eriti kasulik, näiteks seal, kus meil on objektide kogu ja te pole kindel, millisele objektile see viitab. Sellise juhtumi näiteks võib olla paljude juhtnuppudega lihtne vorm.

Samuti, kui kasutame muutujaga instanceOf muutujat, mille väärtus on NULL, tagastage see kindlasti vale.

Kuidas toimib?

Javas tegutsev instanceOf töötab lihtsa olemussuhtega. Lihtsamalt öeldes, suhe on objektorienteeritud mõiste, kus me võrdleme või ütleme, et töötame abstraktsioonide vahelise suhte kallal, kus klass A on klassi B alaklass. See on suhe, mis põhineb täielikult pärandil. Teisisõnu, see on nagu ütlemine: „X on Y-tüüpi”.

Mõistame nüüd näiteks instanceOf toimimist koos vastava koodiga.

Esiteks loome klassi nimega Parent.

Kood:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Seejärel loome oma vanemate klassi eksemplari.

Parent child = new Parent();

Lõpuks kasutame lapse ja vanema suhete kontrollimiseks operaatorit instanceOf. Mis läheb nii: lapsevanem lapsevanemale

Nüüd, nagu varem mainitud, läheb näiteks exampleOf süntaks objektist, mida tuleb kontrollida, seejärel märksõna instanf ja seejärel klassi / liidest, millega antud objekti testitakse.

Mis tahes kohas, kus kohtame klassideklaratsioonis märksõnaga „laieneb” või „rakendab”, on see selge märk kasutatavast seosest.

Näited Java Java-vormingus

Järgmine näide demonstreerib instanOf ühe liini kasutamist.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Kooditõlgendus: Alustati lihtsa klassi instof_java loomisega. Klassis instof_java on meil oma põhiklass ja põhiklassis on meil objekt loodud. See objekt on näiteks instanof_java tüüpi. Seejärel, et rakendada instanceOf toimimist, esitasime objekti s väljundväljavõtte. Viimases reas möödusime s koos märksõna esinemisjuhu ja vanemklassiga. Pärast täitmist naaseb kood tõese väärtusega, kuna objekt s on näiteks tüüpi.

Edasi liikudes, kui meil on teadaoleva klassi või liidese objekt, kuid me pole samale objektile mingit väärtust määranud, tagastab see vale, isegi kui see kuulub samasse klassi.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Siin on meil sarnane kood nagu varasema näite puhul, kuid nullväärtusega objektiga. Selle koodi täitmisel tagastatakse see kood vale. Nagu näeme, on objekt new näiteks astme eksemplar_näidis, kuid uuele omistatakse nullväärtus, mis naaseb valega.

Reeglid näiteks operaatori kohta

Selle põhjal, kas objekti ref pole tühine ja viidatud tüüpi eksemplar. Kui X on viidatud objekti lihtne klass ja Y on eraldatud klass või liidese tüüpi massiiv.

  • Kui X on lihtklass, siis:
  • Kui Y on klassitüüp, peab X olema Y alaklass või X peab olema Y-klassiga sama klass.
  • Kui Y on liidese tüüp, peab X-klass rakendama liidese T.
  • Kui X on tüübiliides, siis:
  • Kui Y on klassitüüp, peab Y olema objekt.
  • Y võib olla sama, mis X-i liides või X-i superliides, kui Y on liidese tüüp.
  • Kui X on klass, mis tähistab massiivi tüüpi SC (), mis on SC-tüüpi komponentide massiiv, siis:
  • Kui Y on klassitüüp, peab Y olema objekt.
  • Kui Y on liidese tüüp, siis peab Y olema liidesetüübiga, mida rakendavad massiivid.

Lõpuks demonstreerime programmi instanOf, et mõista, et vanemobjekt ei saa olla lasteklassi eksemplar.

Programm

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Koodi tõlgendamine: Operaatori instanceOf mõistmiseks erinevates stsenaariumides kirjutasime ülaltoodud koodi. Lõime lihtsa klassiaine ja seejärel veel ühe klassi teema, mis laiendab klassi ainet, muutes siin klassi teema lapseks ja klassi teema lapsevanemaks. Siis veel üks klass põhimeetodiga. Põhimeetodi raames lõime uue vanema klassi subjekti eksemplari. IF ELSE ahelas kontrollisime eksemplari objekti seisundit vanema klassi subjektiga. Kui tingimus oleks täidetud, tagastaks see teema „ajalugu on teema näide” ja „tingimus EI OLE teema teema”, kui tingimus ebaõnnestub.

Ülaltoodud koodi täitmisel on väljundiks „ajalugu EI OLE teema teema“, mis tähendab, et IF-s läbitud tingimus ebaõnnestub. See juhtus seetõttu, et üritasime klassi Teemaga kontrollida objekti “ajalugu” vanemat. Me teame, et klassi teema laiendab klassi teemat, see tähendab, et teema on alamklass õppeainele. Ja kui me üritasime klassi Teemaga kontrollida ajaloo tüüpi, tagastab see vale (EI). See tähendab, et põhiobjekt ei saa olla klassi eksemplar.

Väljund:

Järeldus - näide Java-vormingus

Oleme õppinud Java-siseselt näiteks instanceOf-klassist, mis lihtsalt otsustab, kas objekt on antud tüüpi. Mõistsime, kuidas suhe mõjutab operaatorit. Tuntud ka kui võrdlusoperaator, põhineb instanceOf pärimisel.

Soovitatavad artiklid

See on Java Java-sisestuse juhend. Siin arutleme, kuidas Java Java-sisesed instanceOf töötab, reeglid kooditõlgendusega. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Java märksõnad
  2. Java märkused
  3. Petturileht JavaScript
  4. PHP märksõnad