Wat is het verschil tussen statisch en definitief

Het belangrijkste verschil tussen statisch en definitief is dat het static wordt gebruikt om het klassenlid te definiëren dat onafhankelijk van elk object van de klasse kan worden gebruikt. In tegenstelling tot, final wordt gebruikt om een ​​constante variabele aan te geven of een methode die niet kan worden opgeheven of een klasse die niet kan worden overgenomen.

Statisch en definitief zijn twee sleutelwoorden die in veel objectoriëntatie worden gebruikt voor ondersteuning van programmeertalen zoals Java. Statisch wordt gebruikt met variabelen en methoden om te definiëren dat het bij de klasse hoort, niet bij het object. Aan de andere kant wordt final gebruikt om de gebruiker te beperken tot toegang tot een variabele, methode of een klasse.

Key Areas Covered

1. Wat is statisch
     - Definitie, functionaliteit
2. Wat is definitief
     - Definitie, functionaliteit
3. Wat is het verschil tussen statisch en definitief
     - Vergelijking van belangrijke verschillen

Sleutelbegrippen

Klasse, eindvariabele, statische variabele

Wat is statisch

Een klasse bestaat uit variabelen en methoden. Een object is gemaakt op basis van een klasse; dit object kan worden gebruikt voor het aanroepen van variabelen en methoden. Wanneer een klaslid statisch wordt verklaard, is het niet verplicht om een ​​object te maken om methoden en variabelen te bellen. In plaats daarvan kan de klassenaam worden gebruikt om het te bellen. Met andere woorden, statisch is een sleutelwoord dat bij de klasse hoort in plaats van bij het object.

Een variabele met het statische zoekwoord wordt een statische variabele genoemd. Ze worden gebruikt om een ​​gemeenschappelijke eigenschap van een verzameling objecten te verwijzen. Deze variabelen krijgen geheugen op het moment dat de klasse wordt geladen. Het grote voordeel van een statische variabele is dat het geheugen helpt besparen.

Figuur 1: Statische variabele

In het bovenstaande programma is er een statische variabele genaamd telling. In de constructor wordt de telling met 1 opgehoogd. In het hoofdprogramma worden drie studentobjecten gemaakt. Als u de telling afdrukt, krijgt u resultaat 3 omdat er drie objecten zijn. De telvariabele wordt gedeeld door alle objecten. Telkens wanneer een object wordt gemaakt, wordt de telling met één opgehoogd. Bij het weergeven van de telling moet dit worden geschreven met de klassenaam (bijvoorbeeld - Student.count).

Een methode met het statische zoekwoord staat bekend als een statische methode. Een voorbeeld is als volgt.

Figuur 2: Statische methode

In het bovenstaande programma is vierkant een statische methode. Het ontvangt een geheel getal. In de hoofdmethode wordt de statische methode aangeroepen en wordt de waarde 4 doorgegeven. Het antwoord van de methode wordt opgeslagen in het variabele resultaat en wordt uiteindelijk afgedrukt. Hier wordt de klassenaam gebruikt om toegang te krijgen tot de statische methode. (bijvoorbeeld - Calculate.square (4)). Aan de andere kant kunnen de statische methoden geen niet-statische gegevensleden gebruiken of niet-statische methoden rechtstreeks aanroepen. Het beoordelen van een niet-statische variabele door een statische methode geeft een fout in de compileertijd.

Wat is definitief

Laatste is een sleutelwoord om de gebruiker te beperken. Het kan worden gebruikt in variabelen, methoden en klassen. Een waarde van een laatste variabele kan niet worden gewijzigd.

Figuur 3: Laatste variabele

In het bovenstaande programma wordt de variabele speedLimit als definitief verklaard. Daarom kan de waarde ervan niet worden gewijzigd in de aandrijfmethode. Er wordt dus een fout weergegeven. 

Figuur 4: Klasse A

Figuur 5: Klasse B

In het bovenstaande programma heeft klasse A een laatste methode genaamd display. Klasse B verlengt A. Dus klasse B kan alle variabelen en methoden van klasse A erven. Klasse B heeft ook de methode-weergave. Aangezien de weergavenmethode van klasse A definitief is, is het niet toegestaan ​​om die methode in klasse B te overschrijven.

Bovendien kan een laatste klasse niet als volgt worden verlengd.

Figuur 6: laatste klas

Figuur 7: Klasse B

Aangezien klasse A definitief is, kan deze niet worden verlengd of overgenomen door klasse B.

Verschil tussen statisch en definitief

Definitie

Statisch is een sleutelwoord dat verwijst naar een ledvariabele of een methode waartoe toegang kan worden verkregen zonder dat een instantie van de klasse waartoe deze behoort, hoeft te worden geconverteerd. Definitief daarentegen is een sleutelwoord dat een entiteit aanduidt die maar één keer kan worden toegewezen. Dit verklaart dus het fundamentele verschil tussen statisch en definitief. 

Variabelen

Terwijl statische variabelen opnieuw kunnen worden geïnitialiseerd, kunnen eindvariabelen niet opnieuw worden geïnitialiseerd. Dit is een groot verschil tussen statisch en definitief. 

methoden

Statische methoden kunnen worden aangeroepen door andere statische methoden en hebben alleen toegang tot de statische leden van de klasse. Aan de andere kant kunnen definitieve methoden niet worden opgeheven. Dit is een ander belangrijk verschil tussen statisch en definitief.

Klasse

Een object kan niet worden gemaakt vanuit een statische klasse; het bestaat alleen uit statische leden. Evenzo kunnen eindklassen niet door andere klassen worden overgenomen.

Conclusie

Statisch wordt gebruikt om het klassenlid te definiëren dat onafhankelijk van elk object van de klasse kan worden gebruikt. Laatste wordt gebruikt om een ​​constante variabele aan te geven of een methode die niet kan worden genegeerd of een klasse die niet kan worden overgenomen. Dit is het belangrijkste verschil tussen statisch en definitief.

Referentie:

1. "Statisch trefwoord in Java - Javatpoint." Www.javatpoint.com, hier beschikbaar.
2. "Laatste sleutelwoord in Java - Javatpoint." Www.javatpoint.com, hier beschikbaar.