Skip to main content

Wat is een instantievariabele?

Een instantievariabele is een stukje gegevens in objectgeoriënteerde programmering die zijn eigen unieke waarde heeft voor elk object waarin het zich bevindt.Instantievariabelen kunnen ook instantieleden, niet-statische velden en gegevensleden worden genoemd.Ze zijn een belangrijk onderdeel van de meeste objecten, met specifieke gegevens van gegevens die het object gebruikt voor berekening.

Als er bijvoorbeeld twee objecten bestaat, A en B, waarbij object A een instantievariabele heeft genaamd BLAH en Object B ookHeeft een instantievariabele genaamd BLAH, de twee BLAH -variabelen zijn verschillende entiteiten.Elke variabele is geassocieerd met het object dat het inkapselt.De volledige naam van de variabele BLAH geassocieerd met object A is A.Blah, terwijl de volledige naam van de variabele BLAH geassocieerd met object B B.BLAH is.Elk als deze variabelen zijn eigen waarde kunnen hebben.Als objecten A en B van hetzelfde type zijn, en een ander object van dat type, C, wordt C gemaakt, en object C heeft ook een instantievariabele BLAH, die een eigen unieke waarde kan hebben.

Instantievariabelen worden vaak verward metStatische variabelen, maar de twee zijn aanzienlijk verschillend.In tegenstelling tot instantievariabelen, waarvan elk object van een bepaald type zijn eigen, statische variabelen heeft, hebben slechts één waarde, en deze waarde is hetzelfde voor elk object van het juiste type.Statische variabelen worden vaak klasse variabelen genoemd, die niet hetzelfde zijn als instantievariabelen.

Afhankelijk van de aan hen toegewezen zichtbaarheidseigenschappen, kunnen instantievariabelen alleen zichtbaar zijn in een bepaald object, naar een object en de subklassen, of naar het objectwaarin het zich bevindt als eventuele andere objecten.Dat definitieve type zichtbaarheid, openbare zichtbaarheid genoemd, wordt vaak beschouwd als slechte praktijk, bijvoorbeeld variabelen, omdat het gemakkelijk is om inkapselingsprincipes te schenden in objectgeoriënteerde programmering.Ondanks dit taboe zijn er momenten waarop openbare instantievariabelen nuttig zijn.Veel standaardklassen in Java hebben bijvoorbeeld openbare instantie -variabelen, wat soms een gemakkelijke wijziging van eigenschappen mogelijk maakt.

De zichtbaarheid van een instantievariabele komt ook in het spel met overerving.Als de ene klasse van een andere erft, geeft dit niet onmiddellijk beide klassen toegang tot elkaars instantievariabelen.Private instantievariabelen in de superclass en subklasse blijven beperkt tot alleen die klassen, dus een privévariabele in de subklasse kan niet worden gezien door de superclass en vice versa.De enige instantievariabelen die zowel de superclass als subklasse kunnen zien, zijn beschermde variabelen in de superclass.