In wiskunde en wetenschap is de constante een term die een bepaalde waarde aanduidt, zoals 'π', wat een praktische naam is voor het getal 3.14159. Java heeft zijn soort constanten. Dit zijn variabelen die onder (a) niet behoren tot een object en sub (b) veranderen hun waarde niet als ze eenmaal zijn ingesteld. Het statische woord in de variabele declaratie geeft aan dat de variabele niet tot een object behoort. Er is een vergelijkbaar zoekwoord dat zegt dat de variabele waarde slechts eenmaal wordt ingesteld en niet zal veranderen. Dit is het sleutelwoord finale. Dit sleutelwoord is niet beperkt tot statische variabelen, maar kan worden gebruikt met instantievariabelen, lokale variabelen en zelfs met variabelen die parametermethoden zijn. Door de variabele als een finale te declareren, laat u aan iedereen zien dat de variabele tijdens het bestaan dezelfde waarde heeft. Nog belangrijker is dat de compiler elke poging detecteert om de waarde van een zo verklaarde variabele te wijzigen en deze als een fout te rapporteren. Wat de Java-terminologie betreft, wordt de variabele die als statisch en definitief wordt aangemerkt, een constante genoemd.
De laatste modifier kan op verschillende plaatsen in de Java-programmeertaal worden gebruikt. Hier zullen we het meest voorkomende gebruik behandelen. De laatste wijziging kan worden toegepast op de declaratie van een lokale variabele, functieargument en niet-statische of statische lidvariabelen. In deze context converteert de variabele modifier naar een constante. De vertaler van de vertaaltaal zal controleren of een bepaalde code probeert de waarde aan te passen, en dergelijke pogingen worden als een fout gemarkeerd. Hier is een voorbeeld.
uiteindelijke int-waarde = 17;
Statische lidvariabelen met deze wijziging worden gebruikt als globale constanten; bijvoorbeeld, in de java.lang.Math variabele PI, wordt dit exact vermeld
openbare statische laatste dubbele PI = 3.14159265358979323846;
We kunnen de laatste wijziging toepassen op de functieverklaring. De functie gemarkeerd met de finale kan niet langer worden overruled - dat is de uiteindelijke implementatie. De abstracte methoden kunnen niet als definitief worden verklaard - het feit dat ze abstract zijn, betekent dat ze niet worden uitgevoerd; het kan zeker niet hun ultieme staat zijn. Hier is een voorbeeld.
openbare finale int meaningLife ()
terug 42;
We kunnen de laatste wijziging toepassen op de klassenverklaring. De klasse die is gemarkeerd met de finale kan niet langer erven - dat is de uiteindelijke implementatie. Het is duidelijk dat abstracte klasse niet tegelijkertijd definitief kan zijn. Hier is een voorbeeld
openbare eindklasse Gesloten
// ...
Een van de voorbeelden uit de eindige klasse is de klasse java.lang.String - deze is eindig, dus niemand zou het kunnen erven en zo toegang krijgen tot de ledvariabelen..
Statische variabelen horen niet bij een specifieke instantie van klasse. Statische variabelen behoren tot de klasse zelf en in het geheugen zijn er slechts één locatie, ongeacht het aantal kopieën van die klasse dat in het geheugen is gemaakt. Niet-statische variabelen behoren tot klassenexemplaren - elke instantie van de klasse heeft zijn eigen kopie van dergelijke variabelen. Statische variabelen behoren tot de klasse - de klasse in het geheugen bewaart de waarden van dergelijke variabelen; alle voorbeeldklassen zien daarom dezelfde inhoud, zodat we kunnen overwegen statische variabelen te delen tussen alle klassen. Door de waarde-variabele bij te werken, zal de nieuwe waarde automatisch zichtbaar zijn voor alle instanties van die klasse. Statische filters kunnen worden toegepast op elk element dat wettelijk is gedeclareerd in een klasse. In het geval van lidmaatschapsvariabelen is het gevolg dat dergelijke lidvariabelen slechts op één plaats in het geheugen worden opgeslagen. Wat gebeurt er als het een methode is? Door de methode als statisch te declareren, is het bericht hetzelfde: de relevante methode behoort niet tot klassenklassen, maar tot de klasse zelf. Daarom ontvangen statische methoden geen verborgen verwijzing naar het object waarop ze worden aangeroepen; in statische referentiemethoden is dit niet beschikbaar. Inderdaad, het oproepen van statische methoden in het object is even verwarrend als het benaderen van statische lidvariabelen door te verwijzen naar deze referentie: in beide gevallen is het beter om gewoon de naam van de klasse, het punt en de naam van de aanroepmethode te schrijven.
Statisch staat voor een variabele die gemeenschappelijk is voor alle objecten die een bepaalde klasse instantiëren, terwijl finale de constante definieert.
Statisch is een methode die voor elke objectklasse hetzelfde is - wordt ook klasse-lid genoemd, bijvoorbeeld dat is de belangrijkste methode. Laatste methode kan niet worden verwerkt in de geërfde klasse.
De finale kan niet worden uitgebreid, d.w.z. staat geen subklassen toe. Statisch is niet van toepassing op klasse.
Om het simpel te zeggen, definieerde finaal dat de waarde niet kan worden gewijzigd (overschrijven). De statische waarde wordt ingesteld op de standaardwaarde, maar kan opnieuw worden geïnitialiseerd.