U matematici i znanosti konstanta je pojam koji označava određenu vrijednost poput "π" što je praktično ime za broj 3.14159. Java ima svoje vrste konstante. To su varijable koje pod (a) ne pripadaju nijednom objektu, a pod (b) ne mijenjaju svoju vrijednost nakon što su postavljene. Statička riječ u deklaraciji varijable pokazuje da varijabla ne pripada nijednom objektu. Postoji slična ključna riječ koja kaže da će se vrijednost varijable postaviti samo jednom i neće se mijenjati. Ovo je ključna riječ konačna. Ova ključna riječ nije ograničena na statičke varijable, ali može se koristiti s varijablama primjerka, lokalnim varijablama, pa čak i sa varijablama koje su metode parametara. Deklariranjem varijable konačnom pokazujete svima da će varijabla tijekom postojanja imati istu vrijednost. Još važnije, prevodilac će otkriti svaki pokušaj promjene vrijednosti tako deklarirane varijable i prijaviti je kao grešku. Što se tiče Java terminologije, varijabla koja je deklarirana kao statična i konačna naziva se konstantom.
Konačni modifikator može se koristiti na nekoliko mjesta u programskom jeziku Java. Ovdje ćemo pokriti njegovu najčešću upotrebu. Konačni modifikator može se primijeniti na deklaraciju lokalne varijable, argument funkcije i nestatičke ili statičke varijable člana. U tom kontekstu, modifikator varijable pretvara se u konstantu. Prevodilac jezika prevoditelja će provjeriti pokušava li neki kôd mijenjati vrijednost i takvi će se pokušaji označiti kao greška. Evo primjera.
konačna int vrijednost = 17;
Statičke članske varijable s ovim modifikatorom koriste se kao globalne konstante; na primjer, u varijabli java.lang.Math PI navodi se točno
javni statički konačni dvostruki PI = 3,14159265358979323846;
Na deklaraciju o funkciji možemo primijeniti posljednji modifikator. Funkcija označena konačnim više se ne može obuzdati - to je njezina konačna provedba. Apstraktne metode se ne mogu proglasiti konačnim - činjenica da su apstraktne znači da im nedostaje provedbe; to sigurno ne može biti njihovo krajnje stanje. Evo primjera.
javno konačno int značenjeLife ()
povratak 42;
Na deklaraciju klasa možemo primijeniti posljednji modifikator. Klasa koja je označena konačnim više ne može naslijediti - to je njezina konačna implementacija. Jasno je da apstraktni razred ne može istovremeno biti konačan. Evo primjera
javna finalna klasa zatvorena
// ...
Jedan od primjera konačne klase je klasa java.lang.String - konačna je tako da je nitko ne može naslijediti i na taj način dobiti pristup svojim varijablama članova.
Statičke varijable ne pripadaju određenoj instanci klase. Statičke varijable pripadaju samoj klasi, a u memoriji postoji samo jedno mjesto, bez obzira na broj kopija te klase koje su stvorene u memoriji. Nestatičke varijable pripadaju uzorcima klase - svaka instanca klase ima svoju kopiju takvih varijabli. Statičke varijable pripadaju klasi - klasa u memoriji zadržava vrijednosti takvih varijabli; stoga sve klase uzoraka vide isti sadržaj pa možemo smatrati da se statičke varijable dijele na sve veličine klase. Ažuriranjem varijable vrijednosti, nova vrijednost bit će automatski vidljiva svim instancama te klase. Statički filtar može se primijeniti na bilo koji element koji je zakonski deklariran unutar klase. U slučaju varijabli članstva, posljedica je da će se takve varijable člana pohraniti u memoriju samo na jednom mjestu. Što se događa ako je to metoda? Deklariranjem metode statičkom, poruka je ista: relevantna metoda ne pripada klasama klasa već samoj klasi. Slijedom toga, statičke metode neće dobiti skrivenu referencu na objekt nad kojim su pozvani na poziv; u statičkim referentnim metodama to nije dostupno. Doista, pozivanje statičkih metoda preko objekta jednako je zbunjujuće kao i pristup statičkim varijablama članaka upućivanjem na ovu referencu: u oba slučaja je bolje jednostavno napisati ime klase, točku i ime metode pozivanja.
Statička označava varijablu koja je zajednička svim objektima koji iniciraju pojedinu klasu, a konačna definira konstantu.
Statička je metoda koja je ista za svaki objekt dane klase - također se naziva članom klase, npr. takva je glavna metoda. Konačna metoda se ne može obraditi u naslijeđenom razredu.
Konačni se ne može proširiti, tj. Ne dopušta podrazrede. Statički se ne odnosi na razred.
Jednostavnije rečeno, završno označava da se vrijednost ne može mijenjati (prebrisati). Statička vrijednost postavljena je na zadanu vrijednost, ali može se ponovo inicijalizirati.