Belangrijk verschil - statisch versus definitief in Java
Elke programmeertaal heeft een specifieke syntaxis. De programmeur moet deze syntaxis volgen bij het schrijven van programma's. De trefwoorden van programmeertalen hebben een specifieke betekenis volgens de taken. Ze worden geleverd door de programmeertaal en kunnen niet worden gebruikt voor door de gebruiker gedefinieerde variabelen, methoden, klassen, enz. Statisch en definitief zijn twee sleutelwoorden in Java. Dit artikel bespreekt het verschil tussen statisch en definitief in Java. Het belangrijkste verschil tussen statisch en definitief in Java is dat statisch wordt gebruikt om het klasselid te definiëren dat onafhankelijk van elk object van de klasse kan worden gebruikt, terwijl definitief wordt gebruikt om een constante variabele of een methode te declareren die niet kan worden overschreven of een klasse die kan niet worden geërfd.
Wat is statisch in Java?
Een klasse bestaat uit gegevensleden (attributen) en methoden. Om de methoden aan te roepen, moet er een object van die specifieke klasse zijn. Wanneer een methode als statisch wordt gedeclareerd, is het niet nodig om een object te maken om die methode aan te roepen. De methode kan worden aangeroepen met behulp van de klassenaam. Raadpleeg het onderstaande programma.
Figuur 01: Java-programma met statische variabelen en statische methode
Volgens het bovenstaande programma bevat klasse A getalvariabele en weergavemethode. Beide zijn statische leden. Daarom is het niet nodig om een object te maken om toegang te krijgen tot de getalvariabele en weergavemethode. De programmeur kan direct de klassenaam schrijven om het nummer af te drukken en de methodeweergave op te roepen. Het is dus niet nodig om een object te instantiëren. Als de getalvariabele en weergavemethode niet-statisch zijn, moet er een object van het type A zijn.
Figuur 02: Gebruik van statisch blok
Het bovenstaande programma bevat het statische blok en de hoofdmethode. Het statische blok wordt aangeroepen wanneer de klasse wordt geladen. Daarom wordt de instructie in het statische blok uitgevoerd vóór de instructie in het hoofdblok. Als er veel statische blokken zijn, worden ze in volgorde uitgevoerd.
Wat is definitief in Java?
In het programma kunnen verschillende soorten variabelen voorkomen. Als er een variabele is als int x=1; later in het programma kan die variabelewaarde worden gewijzigd in een andere waarde. Een variabele die als definitief is gedeclareerd en met een waarde is geïnitialiseerd, kan later in het programma niet worden gewijzigd.
Figuur 03: Programma met laatste variabele en overerving
Volgens het bovenstaande programma is x een laatste variabele. Het krijgt een waarde 5. Het kan niet worden gewijzigd door een andere waarde omdat het als definitief wordt verklaard. Java ondersteunt objectgeoriënteerd programmeren (OOP). Een pijler van OOP is een polymorfisme. Eén type polymorfisme is overheersend. Klasse A heeft de weergavemethode. De klasse B breidt klasse A uit en heeft zijn eigen weergavemethode. Wanneer u een object van type B maakt en de weergavemethode aanroept, wordt "B" als uitvoer afgedrukt. De weergavemethode van klasse A wordt overschreven door de weergavemethode van klasse B.
Als de programmeur een methode wil vermijden, kan hij het laatste sleutelwoord voor die methode gebruiken. Als de weergavemethode in klasse A definitief is, geeft de weergavemethode in B een fout omdat die methode niet kan worden overschreven.
Figuur 04: laatste trefwoord in de methode
Een andere pijler van OOP is overerving. Het helpt om de reeds bestaande code opnieuw te gebruiken. De nieuwe klasse kan zich uitbreiden van de bestaande klasse en de gegevensleden en methoden van de bestaande klasse gebruiken. Als het nodig is om te stoppen met het erven van een klasse, kan de programmeur het trefwoord 'final' gebruiken. Raadpleeg het onderstaande programma.
Figuur 05: laatste trefwoord in de Klasse
Volgens bovenstaand programma wordt klasse A definitief verklaard. Wanneer klasse B A uitbreidt, geeft dit een fout omdat klasse A als definitief wordt verklaard. Het kan niet worden overgenomen door andere klassen.
Wat is de overeenkomst tussen statisch en definitief in Java?
Zowel statisch als definitief zijn sleutelwoorden in Java
Wat is het verschil tussen statisch en definitief in Java?
statisch vs definitief in Java |
|
Statisch sleutelwoord geeft aan dat een lidvariabele, of methode, toegankelijk is zonder dat een instantie nodig is van de klasse waartoe deze behoort. | Het laatste sleutelwoord geeft een entiteit aan die maar één keer kan worden toegewezen. |
Variabelen | |
De statische variabelen kunnen opnieuw worden geïnitialiseerd. | De laatste variabelen kunnen niet opnieuw worden geïnitialiseerd. |
Methoden | |
Kan worden aangeroepen door andere statische methoden en hebben alleen toegang tot de statische leden van de klas. | De definitieve methoden kunnen niet worden overschreven. |
Klasse | |
Het statische klasseobject kan niet worden gemaakt. Het bevat alleen statische leden. | De laatste klasse kan niet worden overgenomen door andere klassen. |
Blok | |
Het statische trefwoord kan in een blok worden gebruikt. | Het laatste sleutelwoord wordt niet gebruikt met een blok. |
Samenvatting – statisch vs definitief in Java
Dit artikel besprak twee trefwoorden in Java, zoals static en final. Het verschil tussen statisch en definitief in Java is dat statisch wordt gebruikt om het klasselid te definiëren dat onafhankelijk van elk object van de klasse kan worden gebruikt, terwijl definitief wordt gebruikt om een constante variabele of een methode te declareren die niet kan worden overschreven of een klasse die dat niet kan geërfd zijn.