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 die het object gebruiken voor berekening.
bijvoorbeeld, als er twee objecten bestaat, A en B, waarbij object A een instantievariabele heeft genaamd "blah", en object B heeft ook 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 het kan hebbens eigen unieke waarde.
instantievariabelen worden vaak verward met statische 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 klassenvariabelen genoemd, die niet hetzelfde zijn als instantievariabelen.
Afhankelijk van de aan hen toegewezen zichtbaarheidseigenschappen, mogen instantievariabelen alleen zichtbaar zijn in een bepaald object, naar een object en zijn subklassen, of naar het object waarin het zich bevindt, evenals 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 instaNCE -variabelen zijn nuttig. Veel standaardklassen in Java hebben bijvoorbeeld openbare instantie -variabelen, wat soms een eenvoudige 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.