Razlika med Javim, Končno in Dokončno

Avtor: Laura McKinney
Datum Ustvarjanja: 2 April 2021
Datum Posodobitve: 16 Maj 2024
Anonim
Ustvarjalna družba
Video.: Ustvarjalna družba

Vsebina


Besede "končno, končno in dokončno" se skrivajo v Javi. Vsak od njih ima drugačno delovanje. Osnovna razlika med končnim in končnim dokončnim je ta končna je modifikator dostopa, končno je blok in dokončati je metoda predmetnega razreda. Obstajajo nekatere druge razlike med končnim in končnim dokončnim, ki so obravnavane v primerjalni tabeli.

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela

Osnove za primerjavoKončnoKončnoDokončaj
OsnovniKončno sta v Javi "ključne besede" in "modifikator dostopa".Končno je na Javi "blok".Dokončanje je na Javi "metoda".
PrimernoFinal je ključna beseda, ki se uporablja za razrede, spremenljivke in metode.Končno je blok, ki je vedno povezan s poskusnim in ulovnim blokom.finalize () je metoda, ki se uporablja za predmete.
Delo(1) Končna spremenljivka postane konstantna in je ni mogoče prerazporediti.
(2) Otroški razred ne more preglasiti končne metode.
(3) Končnega razreda ni mogoče podaljšati.
"Končno" blok, počistite vire, uporabljene v bloku "poskusite".Dokončana metoda izvaja čiščenje dejavnosti, povezanih s predmetom pred njegovim uničenjem.
IzvedbaKončna metoda se izvede na njen poziv."Končno" blok se izvrši takoj po izvedbi bloka "poskusni ulov".metoda finalize () se izvede tik pred uničenjem predmeta.


Opredelitev končnega

"Final" je ključna beseda v Javi. Je modifikator dostopa. Ključna ključna beseda je uporabna za razrede, metode in spremenljivke. Poglejmo, kako deluje z vsakim od njih.

Končna spremenljivka

  • Ko je za spremenljivko uporabljena končna ključna beseda, je ni mogoče nadalje spreminjati.
  • Končna spremenljivka se mora inicializirati, ko je razglašena.
  • V skupni konvenciji o kodiranju so končne spremenljivke deklarirane v UPPERCASE.
  • Končna spremenljivka ne zaseda pomnilnika na primere.

končni int FILE_OPEN = 2;

Končne metode

  • Ko je metoda v razredu razglašena za končno, je ne moremo preglasiti s svojim podrazredom.
  • Majhne metode, ki so razglašene za dokončne, lahko prevajalnik "naredi" inline, kar zmanjša stroške klicev funkcij in poveča izboljšave zmogljivosti.
  • Preklicane metode kličejo, se rešujejo dinamično, vendar ko je metoda razglašena za končno, je ni mogoče preglasiti. Zato je mogoče klic funkcije rešiti v času prevajanja.

razred A {končna void meth () {System.out.ln ("To je končna metoda."); }} razred B podaljša A {void meth () {// Razred B ne more podedovati metode razreda A. System.out.ln ("Ne preglasi"); }}

Končni razred

  • Ko je razred razglašen za končnega, ga ne more podedovati noben podrazred.
  • Razglasitev razreda kot končnega bo samodejno razglasila vse njegove metode za končne.
  • Razreda ne morete razglasiti kot "abstraktnega" in "končnega".

končni razred A {// ...} razred B podaljša A {// Razred B ne more podedovati razreda A // ...}

  • V Javi je "končno" blok, ki je vedno povezan z blokom try / catch.
  • Blok »končno« se izvede po bloku poskusi / ulova in pred kodo po bloku poskusi / ulova.
  • Blok "končno" se izvede, ali je izjema vržena ali ne.
  • Ko se vrže izjema in se noben blok ulova ne ujema z izjemo niti takrat, se "končno" blok izvede.
  • Ko se metoda vrne kličoči iz notranjega bloka poskusi / ujeme prek nenaključene izjeme ali izrecne izjave vrnitve, se blok »končno« izvede tik preden se metoda vrne kličočemu.
  • Blok "končno" se uporablja za čiščenje virov ali sprostitev pomnilnika, uporabljenega v bloku "poskusi".
  • Blok »končno« ni obvezen, vendar je dobra naloga, da končno napišete blok po bloku poskusi / ulov.

razred FinalExample {// Ta metoda vrže izjemo iz metode. static void procA () {poskusi {System.out.ln ("znotraj procA"); vrgel novo RuntimeException ("demo"); } končno {System.out.ln ("procAs končno"); }} // Vrnite se iz poskusnega bloka. static void procB () {poskusi {System.out.ln ("znotraj procB"); vrnitev; } končno {System.out.ln ("procBs končno"); }} // Poizkusni blok izvedite normalno. statični void procC () {poskusi {System.out.ln ("znotraj procC"); } končno {System.out.ln ("ProCC končno"); }} javni statični void main (String args) {poskusi {procA (); } ulov (izjema e) {System.out.ln ("Izjeme ujete"); } procB (); procC (); }} // izhod znotraj procA končno ProA je končno Izjema, ujeta znotraj procB-a ProC-a, končno znotraj procC-a ProC-a, končno

Opredelitev Dokončaj

  • Finalize je metoda v objektnem razredu.
  • V predmetu se lahko nahajajo nekateri nevava viri, na primer ročaj datoteke; potem se mora osvoboditi, preden se uniči.
  • Na to metodo se sklicuje zbiralec smeti, preden predmet popolnoma uniči.
  • Ta metoda izvaja dejavnosti čiščenja za objekt, preden se uniči.

Splošna oblika metode finalize () je naslednja.


zaščitena void finalize () {// dokončna koda tukaj}

Metoda dokončanja je razglašena za zaščiteno, tako da do nje ni mogoče dostopati zunaj razreda.

Ta metoda je vedno poklicana pred zbiranjem smeti.

  1. Ključna beseda končni je modifikator dostopa, končno je blok, dokončno pa je metoda.
  2. Ključna beseda končna je uporabna za razrede, spremenljivke in metode razredov, končno je blok, povezan z blokom poskusnega ulova, ki se uporablja za obdelavo izjem, dokončna je metoda, ki deluje samo na objektih.
  3. Spremenljivka, ki je enkrat razglašena za končno, postane konstantna in je ni mogoče znova dodeliti, metode, označene kot končne, ni mogoče preglasiti, razreda, ki je enkrat razglašena za končno, pa ne moremo podedovati. Končni blok se uporablja za čiščenje virov, uporabljenih s poskusnim in ulovnim blokom. Metoda dodelave se uporablja za čiščenje virov, ki jih objekt uporablja, preden objekt uniči.

Zaključek:

Končno, končno in dokončno ima drugačen učinek, če se uporabi na metodi.