Final, finally i finalize su ključne riječi u Javi koje se koriste u rukovanju iznimkama. Svaka od ovih ključnih riječi ima drugačiju funkciju. Osnovna razlika između final, finally i finalize je u tome što konačni je modifikator pristupa, konačno je blok u rukovanju iznimkama i finalizirati je metoda klase objekata.
objasniti neovisnost podataka
Uz to, postoje mnoge razlike između final, finally i finalize. Popis razlika između finala, finally i finalize dan je u nastavku:
g. br. | Ključ | konačni | konačno | finalizirati |
---|---|---|---|---|
1. | Definicija | final je ključna riječ i modifikator pristupa koji se koristi za primjenu ograničenja na klasu, metodu ili varijablu. | finally je blok u Java Exception Handlingu za izvršavanje važnog koda bilo da se iznimka dogodi ili ne. | finalize je metoda u Javi koja se koristi za obavljanje obrade čišćenja neposredno prije nego što se objekt skupi u smeće. |
2. | Primjenjivo na | Završna ključna riječ koristi se s klasama, metodama i varijablama. | Blok finally je uvijek povezan s blokom try and catch u rukovanju iznimkama. | metoda finalize() koristi se s objektima. |
3. | Funkcionalnost | (1) Jednom deklarirana, finalna varijabla postaje konstantna i ne može se mijenjati. (2) konačnu metodu ne može nadjačati potklasa. (3) završna klasa se ne može naslijediti. | (1) finally block pokreće važan kod čak i ako se dogodi iznimka ili ne. (2) finally block čisti sve resurse korištene u try bloku | finalize method izvodi aktivnosti čišćenja u odnosu na objekt prije njegovog uništenja. |
4. | Izvršenje | Finalna metoda se izvršava samo kada je pozovemo. | Blok finally se izvršava čim se izvrši blok try-catch. Njegovo izvršenje ne ovisi o iznimci. | metoda finalize se izvodi neposredno prije nego što se objekt uništi. |
Java konačni primjer
Razmotrimo sljedeći primjer u kojem deklariramo konačnu varijablu age. Jednom deklarirano ne može se mijenjati.
FinalExampleTest.java
public class FinalExampleTest { //declaring final variable final int age = 18; void display() { // reassigning value to age variable // gives compile time error age = 55; } public static void main(String[] args) { FinalExampleTest obj = new FinalExampleTest(); // gives compile time error obj.display(); } }
Izlaz:
U gornjem primjeru proglasili smo varijablu final. Slično tome, metode i klase možemo proglasiti konačnima pomoću ključne riječi final.
Java konačno Primjer
Pogledajmo donji primjer u kojem Java kod izbacuje iznimku, a blok catch obrađuje tu iznimku. Kasnije se finally blok izvršava nakon try-catch bloka. Nadalje, ostatak koda također se normalno izvršava.
FinallyExample.java
public class FinallyExample { public static void main(String args[]){ try { System.out.println('Inside try block'); // below code throws divide by zero exception int data=25/0; System.out.println(data); } // handles the Arithmetic Exception / Divide by zero exception catch (ArithmeticException e){ System.out.println('Exception handled'); System.out.println(e); } // executes regardless of exception occurred or not finally { System.out.println('finally block is always executed'); } System.out.println('rest of the code...'); } }
Izlaz:
kako poništiti odabir u gimp-u
Primjer dovršetka Java
FinalizeExample.java
public class FinalizeExample { public static void main(String[] args) { FinalizeExample obj = new FinalizeExample(); // printing the hashcode System.out.println('Hashcode is: ' + obj.hashCode()); obj = null; // calling the garbage collector using gc() System.gc(); System.out.println('End of the garbage collection'); } // defining the finalize method protected void finalize() { System.out.println('Called the finalize() method'); } }
Izlaz: