Hva er en forekomstvariabel?
En forekomstvariabel er et stykke data i objektorientert programmering som har sin egen unike verdi for hvert objekt der den ligger. Forekomstvariabler kan også kalles forekomstmedlemmer, ikke-statiske felt og datamedlemmer. De er en viktig del av de fleste objekter, og holder spesifikke data som objektet bruker for beregning.
For eksempel, hvis det eksisterer to objekter, A og B, der objekt A har en forekomstvariabel kalt "bla" og objekt B også har en instansvariabel kalt "bla," de to "bla" variables er distinkt. Hver variabel er assosiert med objektet som omslutter det. Det fulle navnet på variabelen "bla" assosiert med objekt A er "A.blah", mens hele navnet på variabelen "bla" assosiert med objekt B er "B.blah." Hver hvis disse variablene kan ha sin egen verdi. Hvis objekter A og B er av samme type, og et annet objekt av den typen, C, opprettes, og objekt C vil også ha en forekomstvariabel "bla", som kan ha detS egen unike verdi.
Forekomstvariabler forveksles ofte med statiske variabler, men de to er betydelig forskjellige. I motsetning til forekomstvariabler, hvor hvert objekt av en bestemt type har sine egne, har statiske variabler bare en verdi, og denne verdien er den samme for hvert objekt av passende type. Statiske variabler kalles ofte klassevariabler, som ikke er de samme som forekomstvariabler.
Avhengig av synlighetsegenskapene som er tildelt dem, kan forekomstvariabler bare være synlige i et bestemt objekt, til et objekt og dets underklasser, eller til objektet der det ligger i tillegg til andre objekter. Den endelige typen synlighet, kalt offentlig synlighet, anses ofte som dårlig praksis for eksempel variabler, fordi det er enkelt å bryte innkapslingsprinsipper i objektorientert programmering. Til tross for dette tabuet, er det tider der offentlig instaNCE -variabler er nyttige. For eksempel har mange standardklasser i Java offentlige forekomstvariabler, som til tider gir enkel modifisering av egenskaper.
Synligheten av en forekomstvariabel spiller også inn i arv. Hvis en klasse arver fra en annen, gir dette ikke umiddelbart begge klassene tilgang til hverandres forekomstvariabler. Private forekomstvariabler i superklassen og underklassen forblir begrenset til bare disse klassene, så en privat variabel i underklassen kan ikke sees av superklassen, og omvendt. De eneste forekomstvariablene som både superklassen og underklassen kan se er beskyttede variabler i superklassen.