Razlika između konačnog, konačnog i konačnog u Javi

Autor: Laura McKinney
Datum Stvaranja: 2 Travanj 2021
Datum Ažuriranja: 5 Svibanj 2024
Anonim
Russia’s New S-550 System Is More Sophisticated Than You Think
Video: Russia’s New S-550 System Is More Sophisticated Than You Think

Sadržaj


Riječi "konačno, konačno i dovršeno" nalaze se u kontri Jave. Svakom od njih omogućeno je različito funkcioniranje. Osnovna razlika između konačnog i konačnog je u tome konačni modifikator pristupa, konačno je blok i Finalizirajte je metoda objektne klase. Postoje neke druge razlike između konačnog i konačnog koji su razmotreni u usporednoj tablici.

  1. Usporedni grafikon
  2. definicija
  3. Ključne razlike
  4. Zaključak

Usporedni grafikon

Osnove za usporedbukonačniKonačnoFinalizirajte
Osnovni, temeljniKonačno je "Java" riječ za ključnu riječ i "modifikator pristupa".Napokon je "blok" u Javi.Finaliziranje je "metoda" u Javi.
primjenjivoFinal je ključna riječ koja se odnosi na klase, varijable i metode.Konačno je blok koji je uvijek povezan s blokom pokušaj i ulov.finalize () je metoda primjenjiva na objekte.
Radna(1) Konačna varijabla postaje konstantna i ne može je biti dodijeljena.
(2) Dječja klasa ne može zaobići konačnu metodu.
(3) Završna klasa ne može se produžavati.
Blok "konačno", očistite resurse koji se koriste u bloku "pokušajte".Finalizirajuća metoda obavlja čišćenje aktivnosti vezanih za objekt prije njegovog uništenja.
IzvršenjeZavršna metoda izvršava se nakon poziva."Konačno" blok izvršava se odmah nakon izvršenja bloka "try-catch".metoda finalize () izvršava se neposredno prije uništenja objekta.


Definicija konačnog

"Final" je ključna riječ na Javi. To je modifikator pristupa. "Konačna" ključna riječ primjenjiva je na klase, metode i varijable. Pogledajmo kako to funkcionira sa svakim od njih.

Konačna varijabla

  • Kad se zadnja ključna riječ primijeni na varijablu, ona se ne može dalje mijenjati.
  • Konačna varijabla mora se inicijalizirati kada je deklarirana.
  • U uobičajenoj konvenciji kodiranja, konačne varijable su deklarirane u UPPERCASE.
  • Konačna varijabla ne zauzima memoriju na instanci.

konačni int FILE_OPEN = 2;

Završne metode

  • Kad se metoda u klasi proglasi konačnom, ne može je nadjačati njezin podrazred.
  • Male metode koje su proglašene konačnim mogu izvršiti sastavljanje „inline“ od strane prevoditelja što će smanjiti opće troškove poziva i povećati performanse.
  • Prevaziđene metode pozivaju, rješavaju se dinamički, ali kada se metoda proglasi konačnom, ne može se nadjačati. Dakle, pozivanje funkcije može se riješiti u vrijeme sastavljanja.

klasa A {final void meth () {System.out.ln ("Ovo je konačna metoda."); }} klasa B proširuje A {void meth () {// Klasa B ne može naslijediti metodu klase A. System.out.ln ("Ne prevladava"); }}

Finalna klasa

  • Kada je klasa deklarirana kao konačna, tada je ne može naslijediti nijedan podrazred.
  • Proglašavanjem klase kao konačne automatski će se proglasiti konačnim sve njegove metode.
  • Ne možete deklarirati klasu kao "apstraktnu" i "konačnu".

finalna klasa A {// ...} klasa B se proširuje A {// Klasa B ne može naslijediti klasu A // ...}

  • U Javi je "napokon" blok koji je uvijek povezan s blokom try / catch.
  • Blok "napokon" izvršava se nakon bloka pokušaja / ulova i prije koda koji slijedi nakon bloka pokušaj / ulov.
  • Blok "konačno" izvršava se bez obzira na to je li iznimka bačena ili ne.
  • Kada se izbaci izuzetak, a niti jedan blok hvata ne odgovara iznimci čak i tada, blok "konačno" se izvršava.
  • Kad se metoda vrati pozivaču iz bloka try / catch putem uncaught iznimke ili izričite izjave povratka, blok "napokon" izvršava se prije nego što se metoda vrati pozivaocu.
  • Blok "napokon" koristi se za čišćenje resursa ili oslobađanje memorije koja se koristi u bloku "probaj".
  • Blok "konačno" nije obavezan, no dobra je praksa napisati konačni blok nakon bloka pokušaj / uhvatiti.

class FinalExample {// Ova metoda izbacuje izuzetak iz metode. static void procA () {probaj {System.out.ln ("unutar procA"); bacite novu RuntimeException ("demo"); } konačno {System.out.ln ("Procita napokon"); }} // Povratak iz pokušajnog bloka. static void procB () {probaj {System.out.ln ("unutar procB"); povratak; } napokon {System.out.ln ("procBs napokon"); }} // Izvršite pokušajni blok normalno. static void procC () {probaj {System.out.ln ("unutar procC"); } konačno {System.out.ln ("ProCC-ovi napokon"); }} javni statički void main (String args) {probaj {procA (); } ulov (Izuzetak e) {System.out.ln ("Izuzetak je uhvaćen"); } procB (); procC (); }} // izlaz unutar proA procA-e napokon Izuzetak je uhvaćen unutar procB-a ProB-a, konačno unutar procC-a ProC-a, konačno

Definicija dovršetka

  • Finalize je metoda u objektnoj klasi.
  • U objektu se mogu nalaziti neki nevavanski resursi, poput rukovanja datotekama; tada se mora osloboditi prije nego što se uništi.
  • Ovu metodu poziva skupljač smeća prije nego što u potpunosti uništi objekt.
  • Ova metoda obavlja aktivnosti čišćenja objekta prije nego što se on uništi.

Opći oblik metode finalize () je sljedeći.


protected void finalize () {// konačni kod ovdje)

Metoda dovršavanja proglašena je zaštićenom tako da joj se ne može pristupiti izvan klase.

Ova metoda se uvijek naziva prije odvoza smeća.

  1. Konačna riječ konačna je modifikator pristupa, na kraju je blok, a finaliziranje je metoda.
  2. Konačna ključna riječ primjenjiva je na klase, varijable i metode klasa, napokon je blok povezan s blokom pokušaj hvatanja koji se koristi za obradu izuzetaka, finalize je metoda koja djeluje samo na objektima.
  3. Promjena jednom proglašena konačnom postaje konstantna i ne može se ponovno dodijeliti, metoda proglašena konačnom ne može se nadjačati, a klasa koja je jednom proglašena konačnom nikad se ne može naslijediti. Konačni blok koristi se za čišćenje resursa koji se koriste u pokušaju i ulovu bloka. Metoda dovršetka koristi se za čišćenje resursa koje koristi objekt prije nego što se objekt uništi.

Zaključak:

Konačno, konačno i dovršeno ima drugačiji učinak ako se primijeni na metodu.