I matematik och vetenskap är konstanten en term som betecknar ett visst värde som "π" vilket är ett praktiskt namn för numret 3.14159. Java har sin typ av konstanter. Dessa är variabler som enligt (a) inte hör till något objekt och under (b) ändrar inte deras värde när de är inställda. Det statiska ordet i den variabla deklarationen visar att variabeln inte hör till något objekt. Det finns ett liknande sökord som säger att variabelvärdet bara ställs in en gång och kommer inte att ändras. Detta är nyckelordets slutliga. Detta nyckelord är inte begränsat till statiska variabler men kan användas med instansvariabler, lokala variabler och även med variabler som är parametermetoder. Genom att deklarera variabeln som en slutlig, visar du till alla att variabeln under existensen kommer att ha samma värde. Ännu viktigare kommer kompilatorn att upptäcka varje försök att ändra värdet på en så deklarerad variabel och rapportera det som ett misstag. Vad gäller Java-terminologin kallas den variabel som deklareras som statisk och slutlig en konstant.
Den slutliga modifieraren kan användas på flera ställen i Java-programmeringsspråket. Här kommer vi att täcka den vanligaste användningen. Den slutliga modifieraren kan appliceras på deklarationen av en lokal variabel, funktionsargument och icke-statiska eller statiska elementvariabler. I detta sammanhang omvandlar den variabla modifieraren till en konstant. Översättningsspråksomvandlaren kontrollerar om någon kod försöker ändra värdet, och sådana försök kommer att flaggas som ett fel. Här är ett exempel.
slutligt intvärde = 17;
Statiska medlemsvariabler med denna modifierare används som globala konstanter; till exempel i java.lang.Math variabel PI, anges det exakt
offentlig statisk slutlig dubbel PI = 3,14159265358979323846;
Vi kan tillämpa den slutliga modifieraren till funktionsdeklarationen. Funktionen markerad med den slutliga kan inte längre överrullas - det är dess slutliga implementering. De abstrakta metoderna kan inte förklaras slutliga - det faktum att de är abstrakta innebär att de saknar genomförande. det kan verkligen inte vara deras ultimata tillstånd. Här är ett exempel.
public final int meaningLife ()
återvända 42;
Vi kan tillämpa den slutliga modifieraren till klassdeklarationen. Klassen som är markerad med finalen kan inte längre ärva - det är dess slutliga genomförande. Klart kan abstrakt klass inte vara slutgiltigt samtidigt. Här är ett exempel
Offentlig slutklass Sluten
// ...
Ett av de ändliga klassexemplen är klassen java.lang.String - det är ändamålsenligt, så att ingen kunde ärva det och därigenom få tillgång till medlemsvariablerna.
Statiska variabler hör inte till en särskild instans av klass. Statiska variabler hör till själva klassen och i minnet finns det bara en plats, oavsett antal kopior av den klassen som skapas i minnet. Icke-statiska variabler hör till klassprover - varje förekomst av klassen har sin egen kopia av sådana variabler. Statiska variabler hör till klassen - klassen i minnet håller värdena för sådana variabler; alla provklasser ser därför samma innehåll så vi kan överväga att statiska variabler delas mellan alla klassstorlekar. Genom att uppdatera värdesvariabeln blir det nya värdet automatiskt synligt för alla instanser av den klassen. Statiskt filter kan tillämpas på något element som är lagligt deklarerat inom en klass. När det gäller medlemsvariabler är konsekvensen att sådana medlemsvariabler endast lagras i minnet på ett ställe. Vad händer om det är en metod? Genom att förklara metoden som statisk, är meddelandet detsamma: den relevanta metoden hör inte till klasser av klasser utan själva klassen. Följaktligen kommer statiska metoder inte att få en dold referens till det objekt över vilket de kallas på samtalet. I statiska referensmetoder är det inte tillgängligt. Att åberopa statiska metoder över objektet är lika förvirrande som att komma åt statiska medlemsvariabler genom att hänvisa till denna referens: i båda fallen är det bättre att helt enkelt skriva namnet på klassen, punkten och namnet på anropsmetoden.
Statisk står för en variabel som är gemensam för alla objekt som instantierar en given klass medan slutlig definierar konstanten.
Statisk är en metod som är densamma för varje objekt givet klass - kallas också klassmedlem, t.ex. så är den huvudsakliga metoden. Slutlig metod kan inte behandlas i den ärftliga klassen.
Slutet kan inte utökas, det vill säga tillåter inte underklasser. Statisk gäller inte klassen.
För att uttrycka det enkelt angavs slutgiltigt att värdet inte kan ändras (åsidosättas). Statiskt värde är inställt på standardvärdet, men kan återinitieras.