Belangrijk verschil – Klasse versus instantievariabelen
De meeste moderne programmeertalen ondersteunen objectgeoriënteerd programmeren. Een object bevat gegevens of attributen. Een object heeft bepaald gedrag. Ze staan bekend als methoden. Een programma kan worden gemodelleerd met behulp van objecten. Een software is een verzameling programma's. Daarom kan een software worden ontworpen en geïmplementeerd met behulp van objecten. Objecten worden interactief met behulp van methoden. Objectgeoriënteerd programmeren verbetert de modulaire opbouw en herbruikbaarheid van de code. Er moet een klasse zijn om objecten te maken. Een klasse is een blauwdruk om een object te maken. Daarom is een object een instantie van een klasse. Bij het programmeren moesten de gegevens worden opgeslagen. Gegevens worden opgeslagen op geheugenlocaties. Deze geheugenlocaties worden variabelen genoemd. Een lidvariabele is een variabele die is gekoppeld aan een specifiek object. Het is toegankelijk voor al zijn methoden. Er zijn twee soorten lidvariabelen: klassevariabelen en instantievariabelen. Het belangrijkste verschil tussen klasse- en instantievariabelen is dat, als er slechts één kopie van de variabele wordt gedeeld met alle instanties van de klasse, die variabelen klassevariabelen worden genoemd en als elke instantie van de klasse zijn eigen kopie van de variabele heeft, dan die variabelen worden instantievariabelen genoemd.
Wat zijn klassevariabelen?
Als er maar één kopie is van de variabele die wordt gedeeld met alle instanties van de klasse, worden die variabelen als klassevariabelen aangeroepen. Klassevariabelen zijn variabelen die binnen de klasse buiten elke methode worden gedeclareerd. Deze variabelen bevatten het sleutelwoord static. Deze variabelen zijn gekoppeld aan de klasse, niet aan het object.
Figuur 01: Klassevariabelen en instantievariabelen
Verwijs naar het onderstaande stuk code met klassevariabelen.
openbare klas Medewerker {
public static int id;
publiek statisch dubbel salaris;
}
publieke klas Test {
public static void main(string args){
Werknemer e1=nieuwe werknemer();
Werknemer e2=nieuwe werknemer();
}
}
Volgens het bovenstaande programma zijn e1 en e2 objecten van het type werknemer. Beide hebben dezelfde kopie van het geheugen. Als e1.id=1 en afdrukken e2.id geeft ook de waarde 1. Het is mogelijk om de id en salariswaarden af te drukken met behulp van de klassenaam Werknemer, zoals Werknemer.id, werknemer.salaris etc.
Wat zijn instantievariabelen?
Als elke instantie van de klasse zijn eigen kopie van de variabele heeft, dan staan die variabelen bekend als instantievariabelen. Raadpleeg het onderstaande programma.
openbare klas Medewerker {
public int id;
publiek dubbel salaris;
}
publieke klas Test{
public static void main(string args){
Werknemer e1=nieuwe werknemer();
e1.id=1;
e1.salaris=20000;
Werknemer e2=nieuwe werknemer();
e2.id=2;
e2. salaris=25000;
}
}
In het hoofdprogramma zijn e1 en e2 verwijzingen naar de objecten van het type Werknemer. Het is mogelijk om waarden toe te kennen voor id en salaris met behulp van de puntoperator zoals e1.id, e1. salaris etc. De id en het salaris in de klasse Werknemer staan bekend als instantievariabelen. De e1 en e2 zijn afzonderlijke objecten. Elk object heeft een afzonderlijke kopie van instantievariabelen. De e1 heeft een aparte id en salaris en de e2 heeft een aparte id en salaris. De instantievariabelen worden dus gemaakt wanneer het object of de instantie wordt gemaakt.
Wat zijn de overeenkomsten tussen klasse- en instantievariabelen?
- Beide zijn typen variabelen.
- Beide variabelen bevinden zich binnen een klasse, maar buiten elke methode.
Wat is het verschil tussen klasse- en instantievariabelen?
Klassevariabelen versus instantievariabelen |
|
Klassevariabelen zijn variabelen waarin slechts één kopie van de variabele wordt gedeeld met alle instanties van de klasse. | Instance-variabelen zijn variabelen wanneer elke instantie van de klasse zijn eigen kopie van de variabele heeft. |
Vereniging | |
Klassevariabelen zijn gekoppeld aan de klasse. | Instance-variabelen zijn gekoppeld aan objecten. |
Aantal exemplaren | |
Klassevariabelen maken één kopie voor alle objecten. | Instance-variabelen maken een aparte kopie voor elk object. |
Trefwoorden | |
Klassevariabelen moeten het statische sleutelwoord hebben. | Instance-variabelen hebben geen speciaal trefwoord nodig, zoals static. |
Samenvatting – Klasse vs. instantievariabelen
Objectgeoriënteerd programmeren is een belangrijk programmeerparadigma. Het helpt om software te modelleren met behulp van objecten. Objecten worden gemaakt met klassen. Het maken van objecten wordt ook wel instantiatie genoemd. Een klasse biedt een blauwdruk om een object te maken. Een lidvariabele is een variabele die is gekoppeld aan een specifiek object. Het is toegankelijk voor al zijn methoden. Er zijn twee soorten lidvariabelen, klassevariabelen en instantievariabelen. Het verschil tussen klasse- en instantievariabelen is dat, als er slechts één kopie van de variabele wordt gedeeld met alle instanties van de klasse, die variabelen klassevariabelen worden genoemd en als elke instantie van de klasse zijn eigen kopie van de variabele heeft, dan variabelen worden instantievariabelen genoemd.
Download de PDF-versie van klasse versus instantievariabelen
U kunt de PDF-versie van dit artikel downloaden en gebruiken voor offline doeleinden volgens de citatienota. Download de PDF-versie hier: Verschil tussen klasse- en instantievariabelen