Ključna razlika – statička naspram finalne u Javi
Svaki programski jezik ima specifičnu sintaksu. Programer bi trebao slijediti ove sintakse kada piše programe. Ključne riječi programskih jezika imaju specifično značenje prema zadacima. Omogućuje ih programski jezik i ne mogu se koristiti za korisnički definirane varijable, metode, klase itd. Static i final su dvije ključne riječi u Javi. Ovaj članak govori o razlici između static i final u Javi. Ključna razlika između static i final u Javi je ta što se static koristi za definiranje člana klase koji se može koristiti neovisno o bilo kojem objektu klase, dok se final koristi za deklariranje konstantne varijable ili metode koja se ne može nadjačati ili klase koja ne može se naslijediti.
Što je statično u Javi?
Klasa se sastoji od podatkovnih članova (atributa) i metoda. Da bi se pozvale metode, trebao bi postojati objekt te specifične klase. Kada je metoda deklarirana kao statična, nije potrebno kreirati objekt za pozivanje te metode. Metoda se može pozvati korištenjem naziva klase. Pogledajte donji program.
Slika 01: Java program sa statičkim varijablama i statičkom metodom
Prema gornjem programu, klasa A sadrži varijablu broja i metodu prikaza. Oba su statični članovi. Stoga nije potrebno kreirati objekt za pristup varijabli broja i metodi prikaza. Programer može izravno napisati ime klase da ispiše broj i pozove prikaz metode. Dakle, nema potrebe za instanciranjem objekta. Ako su varijabla broja i metoda prikaza nestatične, tada bi trebao postojati objekt tipa A.
Slika 02: Upotreba statičkog bloka
Gornji program sadrži statički blok i glavnu metodu. Statički blok se poziva kada se klasa učita. Stoga se naredba u statičkom bloku izvršava prije naredbe u glavnom bloku. Ako postoji mnogo statičkih blokova, oni će se izvršavati u nizu.
Što je konačno u Javi?
U programu mogu postojati varijable raznih vrsta. Ako postoji varijabla kao int x=1; kasnije u programu ta vrijednost varijable se može promijeniti u neku drugu vrijednost. Varijabla koja je deklarirana kao konačna i inicijalizirana vrijednošću ne može se promijeniti kasnije u programu.
Slika 03: Program s konačnom varijablom i nasljeđivanjem
Prema gornjem programu, x je konačna varijabla. Dodijeljena mu je vrijednost 5. Ne može se promijeniti neka druga vrijednost jer je deklarirana kao konačna. Java podržava objektno orijentirano programiranje (OOP). Jedan stup OOP-a je polimorfizam. Jedna vrsta polimorfizma je nadjačavajući. Klasa A ima metodu prikaza. Klasa B proširuje klasu A i ima vlastitu metodu prikaza. Prilikom stvaranja objekta tipa B i pozivanja metode prikaza ispisat će se "B" kao izlaz. Metoda prikaza klase A nadjačana je metodom prikaza klase B.
Ako programer treba izbjegavati nadjačavanje metode, tada može koristiti konačnu ključnu riječ za tu metodu. Ako je metoda prikaza u klasi A konačna, metoda prikaza u B će dati pogrešku jer se ta metoda ne može nadjačati.
Slika 04: konačna ključna riječ u metodi
Još jedan stup OOP-a je nasljeđivanje. Pomaže ponovno korištenje već postojećeg koda. Nova klasa može se proširiti iz postojeće klase i koristiti članove podataka i metode postojeće klase. Ako je potrebno zaustaviti nasljeđivanje klase, programer može koristiti ključnu riječ 'final'. Pogledajte donji program.
Slika 05: konačna ključna riječ u klasi
Prema gore navedenom programu, klasa A se proglašava konačnom. Kada klasa B proširi A, daje pogrešku jer je klasa A deklarirana kao konačna. Ne mogu ga naslijediti druge klase.
Koja je sličnost između static i final u Javi?
Static i final ključne su riječi u Javi
Koja je razlika između static i final u Javi?
statičko vs konačno u Javi |
|
Statična ključna riječ označava da se varijabli članu ili metodi može pristupiti bez potrebe za instanciranjem klase kojoj pripada. | Konačna ključna riječ označava entitet koji se može dodijeliti samo jednom. |
Varijable | |
Statičke varijable se mogu ponovno inicijalizirati. | Konačne varijable ne mogu se ponovno inicijalizirati. |
Metode | |
Mogu se pozvati drugim statičkim metodama i pristupati samo statičkim članovima klase. | Konačne metode ne mogu se poništiti. |
Razred | |
Statični objekt klase ne može se kreirati. Sadrži samo samo statične članove. | Konačnu klasu ne mogu naslijediti druge klase. |
Blokiraj | |
Statična ključna riječ može se koristiti u bloku. | Konačna ključna riječ ne koristi se s blokom. |
Sažetak – statički vs konačni u Javi
Ovaj članak govori o dvije ključne riječi u Javi kao što su static i final. Razlika između static i final u Javi je u tome što se static koristi za definiranje člana klase koji se može koristiti neovisno o bilo kojem objektu klase, dok se final koristi za deklariranje konstantne varijable ili metode koja se ne može nadjačati ili klase koja ne može biti naslijeđen.