Lõpp-, lõpu- ja lõpuleviimise erinevus Java-vormingus

Autor: Laura McKinney
Loomise Kuupäev: 2 Aprill 2021
Värskenduse Kuupäev: 15 Mai 2024
Anonim
Lõpp-, lõpu- ja lõpuleviimise erinevus Java-vormingus - Tehnoloogia
Lõpp-, lõpu- ja lõpuleviimise erinevus Java-vormingus - Tehnoloogia

Sisu


Sõnad „lõplikult, lõpetuseks ja viimistlemiseks” asuvad Java keeles. Kõigil neist on erinev toimimine. Põhiline erinevus lõpliku ja lõpliku vahel on see lõplik on juurdepääsu muutja, lõpuks on blokk ja viimistlema on objektiklassi meetod. Lõpliku ja lõpliku variandi vahel on veel mõned erinevused, mida käsitletakse võrdlustabelis.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm

Võrdluse alusFinaalLõpuksLõpeta
PõhilineFinal on Java-s "Märksõna" ja "juurdepääsu modifikaator".Lõpuks on "blokeerida" Java.Lõpetamine on Java meetod.
KohaldatavLõppsõna on klassidele, muutujatele ja meetoditele rakendatav märksõna.Lõpuks on see blokk, mis on alati seotud proovimisplokiga.finalize () on objektidele rakendatav meetod.
Töötamine(1) Lõplik muutuja muutub konstantseks ja seda ei saa ümber määrata.
(2) Lapse klass ignoreerib lõplikku meetodit.
(3) Lõppklassi ei saa pikendada.
Plokk "lõpuks", puhastage plokis "proovida" kasutatud ressursid.Lõpeta meetod puhastab objektiga seotud tegevused enne selle hävitamist.
HukkamineLõplik meetod teostatakse tema kutsel.Plokk "Lõpuks" käivitub vahetult pärast ploki "proov-püüd" täitmist.meetod finalize () käivitatakse vahetult enne objekti hävitamist.


Finaali määratlus

“Lõplik” on Java märksõna. See on juurdepääsu muutja. "Lõplik" märksõna on rakendatav klassidele, meetoditele ja muutujatele. Vaatame, kuidas see kõigiga töötab.

Lõplik muutuja

  • Kui muutujale rakendatakse lõplik märksõna, ei saa seda enam muuta.
  • Lõplik muutuja tuleb selle deklareerimisel lähtestada.
  • Ühises kodeerimise tava kohaselt deklareeritakse lõplikud muutujad ÜLISKORRAS.
  • Viimane muutuja ei võta üksikjuhu korral mälu.

lõplik int FILE_OPEN = 2;

Lõplikud meetodid

  • Kui klassis esitatud meetod kuulutatakse lõplikuks, ei saa seda alaklassiga alistada.
  • Lõplikeks kuulutatud väikseid meetodeid saab kompilaator muuta „sisemiseks”, mis vähendab funktsioonikõnede üldkulusid ja suurendab jõudluse täiustusi.
  • Ülepakutud meetodite väljakutse lahendatakse dünaamiliselt, kuid kui meetod kuulutatakse lõplikuks, ei saa seda ümber lükata. Seega saab funktsiooni kutsumise lahendada kompileerimise ajal.

klass A {final void meth () {System.out.ln ("See on lõplik meetod."); }} klass B laiendab A {void meth () {// Clas B ei saa klassi A meetodit pärida. System.out.ln ("Ei ületa"); }}

Lõpuklass

  • Kui klass kuulutatakse lõplikuks, ei saa seda pärida ükski alaklass.
  • Klassi lõplikuks kuulutamine kuulutab automaatselt kõik selle meetodid lõplikuks.
  • Klassi ei saa kuulutada nii abstraktseks kui ka lõplikuks.

lõpuklass A {// ...} klass B laieneb klassile {// klass B ei saa klassi A // ...} pärida

  • Java-keeles on „lõpuks” plokk, mis on alati seotud proovimise / püüdmise plokiga.
  • Plokk „lõpuks” käivitatakse pärast proovimis- / püüdmisplokki ja enne proovimis- / püüdmisplokile järgnevat koodi.
  • Plokk „lõpuks” täidab seda, kas erand visatakse või mitte.
  • Kui erand visatakse ja kui ükski püügiplokk ei vasta erandile ka siis, täidetakse plokk „lõpuks“.
  • Kui meetod naaseb helistajale proovimis- / püüdmisplokist sissenõudmata erandi või selgesõnalise tagastamisavalduse kaudu, siis "lõpuks" täidetakse plokk vahetult enne meetodi helistajale naasmist.
  • Plokki “lõpuks” kasutatakse ressursside puhastamiseks või plokis “proovida” kasutatud mälu vabastamiseks.
  • Plokk „lõpuks” on valikuline, kuid hea tava on kirjutada lõplik plokk pärast proovimis- / püüdmisplokki.

klass FinalExample {// See meetod loobub meetodist erandi. staatiline tühine procA () {proovige {System.out.ln ("procA sees"); viska uus RuntimeException ("demo"); } lõpuks {System.out.ln ("procAs lõpuks"); }} // Naaske prooviplokist. staatiline tühine procB () {proovige {System.out.ln ("procB sees"); tagasi; } lõpuks {System.out.ln ("procBs lõpuks"); }} // Täitke prooviplokk tavapäraselt. staatiline tühine procC () {proovige {System.out.ln ("procC sees"); } lõpuks {System.out.ln ("procCs lõpuks"); }} avalik staatiline tühine pea (keelpillid) {proovige {procA (); } saak (erand e) {System.out.ln ("erand on püütud"); } procB (); procC (); }} // väljund procA procA's lõpuks Erand püütud procB procB sees on lõpuks procC procC's lõpuks

Lõpetamise määratlus

  • Lõpetamine on meetod objektiklassis.
  • Objekt võib hoida mõnda java-ressurssi, näiteks faili käepide; siis tuleb see enne hävitamist vabastada.
  • Prügikoguja kasutab seda meetodit enne, kui see objekti täielikult hävitab.
  • Selle meetodi abil puhastatakse objekt enne selle hävitamist.

Meetodi lõpuleviimise () üldvorm on järgmine.


kaitstud kehtetu vormistama () {// viimistluskood siin}

Lõpetamismeetod kuulutatakse kaitstuks, nii et sellele ei pääse juurde klassist.

Seda meetodit kutsutakse alati enne prügivedu.

  1. Märksõna final on juurdepääsu modifikaator, lõpuks plokk ja finalize on meetod.
  2. Märksõna final on rakendatav klasside, muutujate ja klasside meetodite jaoks. Lõpuks on proovide püüdmise plokiga seotud plokk, mida kasutatakse erandite käsitlemiseks, finalize on meetod, mis töötab ainult objektidel.
  3. Lõplikuks kuulutatud muutuja muutub konstantseks ja seda ei saa enam uuesti määrata, lõplikuks kuulutatud meetodit ei saa tühistada ja lõplikuks kuulutatud klassi ei saa kunagi pärida. Viimast plokki kasutatakse proovivõtuploki ressursside puhastamiseks. Lõpetamise meetodit kasutatakse objekti kasutatavate ressursside puhastamiseks enne objekti hävitamist.

Järeldus:

Lõplikul, lõplikul ja lõplikul kujul on meetodile rakendamisel erinev mõju.