Ključna razlika – final vs finally vs finalize u Javi
Final, finally i finalize su uobičajeni termini koji se koriste u Java programiranju. Finale je ključna riječ. Može se koristiti za varijable, metode ili klase. Varijable deklarirane kao konačne treba inicijalizirati samo jednom. Ne mogu se mijenjati. Pošto je Java jezik koji podržava objektno orijentisano programiranje, omogućava kreiranje klasa iz postojećih klasa radi poboljšanja ponovne upotrebe koda. Ponekad će možda biti potrebno izbjegavati korištenje postojećih klasa. Za to se može koristiti final. U programiranju može doći do grešaka i važno je postupati s njima kako bi se program ispravno izvršio. Finalize je metoda koju poziva sakupljač smeća. Dakle, svi ovi pojmovi imaju različita značenja. Final je ključna riječ koja sprječava promjenu varijabli, izbjegava zaobilaženje metoda i izbjegava proširenje klasa. Konačno je blok u rukovanju izuzecima, koji će se izvršiti bez obzira da li je izuzetak izbačen ili ne. Finalize je metoda koju poziva sakupljač smeća prije nego što potpuno uništi objekt. To je ključna razlika konačno i finalizirajte u Javi.
Šta je konačno u Javi?
Final je ključna riječ u Javi. Kako Java podržava objektno orijentirano programiranje, podklase mogu koristiti varijable i metode već postojeće klase. Već postojeća klasa je superklasa, dok je nova klasa potklasa. Ako programer želi spriječiti varijablu dostupnoj drugim klasama, može deklarirati varijablu kao 'final'. Na primjer, pretpostavimo da postoji varijabla kao p. Deklariše se kao konačno i inicijalizira vrijednost 10.npr. final int p=10. Ako se p vrijednost ponovo promijeni na 20, to će uzrokovati grešku u vremenu kompajliranja. Finalna ključna riječ sprječava promjenu vrijednosti varijable.
Klasa može koristiti metodu koja je već u postojećoj klasi. Pretpostavimo da postoji klasa zvana B koja ima metod display(). Nova klasa je C i proširuje klasu B. Ako klasa C takođe ima metodu koja se zove display(), tada je originalna metoda klase B display() zaobiđena. Ako programer želi da izbegne nadjačavanje metode, onda on konačno može da upotrebi ključnu reč. npr. konačni void display(){ }. Postavljanje metode konačno osigurava da funkcionalnost metode nikada neće biti promijenjena.
Slika 01: konačno, konačno i finalizirano
Takođe je moguće koristiti finalnu ključnu riječ za klasu. Nova klasa ne može naslijediti varijable i metode konačne klase. Ovo je korisno za povećanje sigurnosti. Kako podklase sprječavaju korištenje klase, podaci su zaštićeni.
Šta je konačno u Javi?
U programiranju može biti grešaka. Greške mogu uzrokovati neispravne izlaze ili prekinuti izvršavanje programa. Važno je koristiti neku vrstu mehanizma za sprječavanje ovih neočekivanih rezultata. Greške mogu biti dvije vrste. To su greške vremena kompajliranja i greške vremena izvođenja. Greške u vremenu prevođenja nastaju zbog sintaksičkih grešaka. Neke uobičajene greške u vremenu kompajliranja su nedostatak tačke i zareza, nedostaju vitičaste zagrade, pogrešno napisani identifikatori, ključne riječi i nedeklarirane varijable. Kompajler neće kreirati.class fajl dok se ove greške ne poprave.
Ponekad mogu postojati programi koji kompajliraju ispravno, ali daju pogrešan izlaz. One se nazivaju runtime errors. Neke uobičajene greške u izvršavanju su poništavanje cijelog broja za nulu i pristupanje elementu koji je izvan granica niza. Ove greške neće uzrokovati grešku u vrijeme kompajliranja, ali izlaz je netačan. Izuzetak je stanje koje je uzrokovano greškom u toku izvođenja programa.
Kada postoji greška u toku izvođenja, Java kreira objekat izuzetka i izbacuje ga. Ako objekt izuzetka nije pravilno uhvaćen, prikazat će poruku o grešci i prekinut će program. Ako programer želi da nastavi izvršavanje programa sa ostatkom koda, treba da uhvati objekat izuzetka i prikaže potrebnu poruku za korektivnu akciju. Ovaj proces je poznat kao rukovanje izuzetkom.
U Javi, try se koristi za kod koji će vjerovatno uzrokovati grešku i izbaciti izuzetak. Hvatanje se koristi za rukovanje izuzetkom koji je izbacio blok try. Može postojati više naredbi catch. Naredbe finally se mogu koristiti za rukovanje izuzetkom koji nije uhvaćen nijednom od prethodnih naredbi catch. Blok finally će se izvršiti bez obzira da li je izbačen izuzetak ili ne. Pogledajte dati primjer.
int p=10, q=5, r=5;
int odgovor;
probajte{
odgovor=p / (q – r);
}
catch (ArithmeticException e){
System.out.println(“Podijeljeno nulom”);
}
konačno{
System.out.println(“Konačni blok je izvršen”);
}
Prema gornjem primjeru, vrijednost p je podijeljena sa nulom, i to će uzrokovati izuzetak. Stoga je uhvaćen naredbom catch. Ispisat će poruku podijeljenu sa nulom. Blok finally će se izvršiti bez obzira da li je došlo do izuzetka ili ne. Nakon poruke Divided by nula, prikazat će se poruka unutar finally bloka. Dakle, konačno je blok koji se koristi u obradi izuzetaka.
Šta je finalize u Javi?
U OOP-u, objekti se kreiraju pomoću klasa. Metoda konstruktora može inicijalizirati objekt kada je deklariran. Proces je poznat kao inicijalizacija. Java takođe ima koncept koji se zove finalizacija. Java runtime je automatski sakupljač smeća. Automatski oslobađa memorijske resurse koje koriste objekti. Sakupljač smeća poziva ovu metodu prije uništavanja objekta.
Neki objekti mogu sadržavati ne-objektne resurse. Jedan primjer je deskriptor datoteke. U ovim situacijama sakupljač smeća poziva metodu finalize. npr. finalize(). Ova metoda obavlja obradu čišćenja neposredno prije nego što se objekt prikupi smeće.
Koja je sličnost između finally finally i finalize u Javi?
Sve finale, finally i finalize u Javi se koriste u Java programiranju
Koja je razlika između finally finally i finalize u Javi?
final vs finally vs finalize |
|
final | Final je ključna riječ u Javi koja sprječava mijenjanje varijabli, izbjegava zamjenu metoda i izbjegava proširenje klasa. |
konačno | Konačno je blok u Java rukovanju izuzetcima, koji će se izvršiti bez obzira da li je izuzetak izbačen ili ne. |
finaliziraj | Finalizacija je metoda u Javi, koju poziva sakupljač smeća prije nego što potpuno uništi objekt. |
Primjenjivost | |
final | Završno je primjenjivo za varijable, metode i klase. |
konačno | Konačno je primjenjivo sa blokovima pokušaja i hvatanja. |
finaliziraj | Finalizacija je primjenjiva za objekte. |
Sažetak – final vs finally vs finalize u Javi
Final, finally i finalize su uobičajeni termini koji se koriste u Java programiranju. Njihove riječi izgledaju iste, ali imaju razliku. Final je ključna riječ koja sprječava mijenjanje varijabli, izbjegava preglasavanje metoda i izbjegavanje proširenja klasa. Konačno je blok u rukovanju izuzecima, koji će se izvršiti bez obzira da li je izuzetak izbačen ili ne. Finalize je metoda koju poziva sakupljač smeća prije nego što potpuno uništi objekt. To je razlika između final, finally i finalize u Java programiranju.
Preuzmite PDF finala vs finally vs finalize u Javi
Možete preuzeti PDF verziju ovog članka i koristiti je za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje: Razlika između konačnog i finaliziranog u Javi