Suositeltava, 2024

Toimituksen Valinta

Lopullinen, lopullinen ja lopullinen ero Java: ssa

Sanat "lopullinen, ja lopuksi" ovat Java-kontekstissa. Jokaisella niistä on erilainen toiminta. Lopullinen lopullinen lopullinen ja lopullinen ero on, että lopullinen on pääsyn muokkaaja, lopulta lohko ja viimeistely on objektiluokan menetelmä. Lopullisten ja lopullisten välillä on joitakin muita eroja, jotka on esitetty vertailukaaviossa.

Vertailukaavio

Vertailun perusteetLopullinenvihdoinviimeistellä
perustiedotLopullinen on "Avainsana" ja "pääsyn muokkaaja" Java: ssa.Lopuksi on "lohko" Java: ssa.Viimeistely on "menetelmä" Java: ssa.
sovellettavatFinaali on luokkiin, muuttujiin ja menetelmiin sovellettava avainsana.Lopuksi on lohko, joka liittyy aina kokeiluversioon.viimeistely () on objektiin sovellettava menetelmä.
Työskentely(1) Lopullinen muuttuja muuttuu vakaana, eikä sitä voi määrittää uudelleen.
(2) Lasten luokka ei voi ohittaa lopullista menetelmää.
(3) Loppuluokkaa ei voi pidentää.
"Lopuksi" lohko puhdistaa kokeilulohkossa käytetyt resurssit.Viimeistelymenetelmä puhdistaa kohteeseen liittyvät toiminnot ennen sen tuhoutumista.
suoritusLopullinen menetelmä suoritetaan sen puhelun jälkeen."Lopuksi" lohko suoritetaan heti "yritä kiinni" -lohkon suorittamisen jälkeen.viimeistellä () menetelmä suoritetaan juuri ennen kohteen tuhoutumista.

Finaalin määritelmä

“Final” on avainsana Java-ohjelmassa. Se on pääsyn muokkaaja. ”Lopullinen” avainsana soveltuu luokkiin, menetelmiin ja muuttujiin. Katsotaanpa, miten se toimii kunkin kanssa.

Lopullinen muuttuja

  • Kun muuttujaan sovelletaan lopullista avainsanaa, sitä ei voi muuttaa edelleen.
  • Lopullinen muuttuja on alustettava, kun se on ilmoitettu.
  • Yhteisessä koodaussopimuksessa lopulliset muuttujat ilmoitetaan UPPERCASE: ssa.
  • Lopullinen muuttuja ei ota muistia per-peräkkäin.
 lopullinen int FILE_OPEN = 2; 

Lopulliset menetelmät

  • Kun luokassa oleva menetelmä julistetaan lopulliseksi, sen alaluokka ei voi ohittaa sitä.
  • Pienet menetelmät, jotka julistetaan lopullisiksi, voidaan kääntää kääntäjälle inlineiksi, mikä vähentää funktion kutsumisen yleiskustannuksia ja lisää suorituskyvyn parannuksia.
  • Peruutetut menetelmät puhuvat, ne ratkaistaan ​​dynaamisesti, mutta kun menetelmä on julistettu lopulliseksi, sitä ei voi ohittaa. Näin ollen funktion kutsuminen voidaan ratkaista kääntymisaikana.
 luokka A {final void meth () {System.out.println ("Tämä on lopullinen menetelmä."); }} luokka B ulottuu A {void met () {// Clas B ei voi periä luokan A menetelmää. System.out.println ("Ei ohittaa"); }} 

Lopullinen luokka

  • Kun luokka on julistettu lopulliseksi, sitä ei voi periä mikään alaluokka.
  • Luokan julistaminen lopulliseksi julistaa automaattisesti kaikki sen lopulliset menetelmät.
  • Et voi julistaa luokkaa niin abstraktiksi kuin lopulliseksi.
 lopullinen luokka A {// ...} luokka B ulottuu A {// Luokka B ei voi periä luokan A // ...} 

Määritelmä Lopuksi

  • Java-ohjelmassa "vihdoin" on lohko, joka liittyy aina kokeiluversioon.
  • "Lopuksi" -lohko suoritetaan kokeilupalvelun jälkeen ja ennen koodia, joka seuraa kokeiluversiota.
  • "Lopuksi" -lohko suorittaa, onko poikkeus heitetty vai ei.
  • Kun poikkeus heitetään, eikä mikään saalislohko vastaa poikkeusta edes silloin, lopuksi lohko suoritetaan.
  • Kun menetelmä palaa soittajalle kokeiluversio-lohkon sisäpuolelta katkeamattoman poikkeuksen tai nimenomaisen palautuslausuman kautta, lopullisesti lohko suoritetaan juuri ennen kuin menetelmä palaa soittajalle.
  • "Lopuksi" -lohkoa käytetään resurssien puhdistamiseen tai "try" -lohkossa käytettävän muistin vapauttamiseen.
  • "Lopuksi" lohko on valinnainen, mutta on hyvä käytäntö kirjoittaa lopullisesti lohko kokeiluversio-lauseen jälkeen.
 class EndExample {// Tämä menetelmä heittää poikkeuksen menetelmästä. staattinen void procA () {try {System.out.println ("sisäinen procA"); heitä uusi RuntimeException ("demo"); } lopuksi {System.out.println ("procA's lopulta"); }} // Palaa kokeilulohkosta. static void procB () {try {System.out.println ("sisäinen procB"); palata; } lopuksi {System.out.println ("procB: t lopulta"); }} // Suorita kokeilulohko normaalisti. staattinen void procC () {try {System.out.println ("sisäinen procC"); } lopulta {System.out.println ("procC: t lopulta"); }} public static void main (String args []) {try {procA (); } catch (Poikkeus e) {System.out.println ("Poikkeus kiinni"); } procB (); procC (); }} // procA procA: n sisäinen tulos lopulta ProcB procB: n sisällä lopulta poikkeus, joka on lopulta sisältynyt procC procC: n sisällä 

Määritelmä viimeistelylle

  • Viimeistely on menetelmä objektiluokassa.
  • Objektissa voi olla joitakin ei-java-resursseja, kuten tiedoston kahva; sitten se on vapautettava ennen kuin se tuhoutuu.
  • Tätä menetelmää hyödyntää roskat kerääjä ennen kuin se tuhoaa kohteen kokonaan.
  • Tämä menetelmä suorittaa objektin puhdistustoiminnot ennen sen tuhoamista.

Menetelmän lopullinen muoto () on seuraavanlainen.

 suojattu void finalize () {// viimeistelykoodi täällä} 

Viimeistelymenetelmä on julistettu suojatuksi, jotta sitä ei voida käyttää luokan ulkopuolelta.

Tätä menetelmää kutsutaan aina ennen jätteiden keräämistä.

Lopullinen, lopullinen ja viimeistely

  1. Avainsanan lopullinen on pääsyn muokkaaja, lopulta lohko ja viimeistely on menetelmä.
  2. Avainsanan finaali soveltuu luokkien luokkiin, muuttujiin ja menetelmiin, lopuksi on lohko, joka liittyy kokeilun salauslohkoon, jota käytetään poikkeusten käsittelyyn, viimeistely on menetelmä, joka toimii vain objekteissa.
  3. Muuttuja, joka on julistettu lopulliseksi, pysyy vakiona eikä sitä voi uudelleen määrittää uudelleen, lopulliseksi julistettua menetelmää ei voida ohittaa, eikä luokkaa, joka on julistettu lopulliseksi, ei voi koskaan periä. Lopulta lohkoa käytetään puhdistamaan kokeilun ja saaliskappaleen käyttämät resurssit. Viimeistämismenetelmää käytetään objektien käyttämien resurssien puhdistamiseen ennen objektin tuhoutumista.

johtopäätös:

Lopullisella, lopullisella ja viimeistelyllä on erilainen vaikutus, kun sitä sovelletaan menetelmään.

Top