Hva er statiske variabler?
Statiske variabler, også kalt globale variabler, er data som ikke er tilknyttet et bestemt eksempel av en klasse. Bare en verdi for disse variablene kan eksistere uavhengig av antall klasseobjekter som er opprettet. Avhengig av kontekst, kan statiske variabler være mer fleksible eller mer restriktive enn forekomstvariablene, som har sine egne diskrete verdier for hvert spesifikt objekt av en klassetype. I objektorienterte programmeringsspråk dikterer vanligvis god programmeringspraksis at bruken av statiske objekter, metoder eller variabler holdes på et minimum, men de har nyttige applikasjoner.
En hovedårsak til at statiske variabler til tider blir sett på som begrensende, er fordi ikke mer enn en verdi noen gang kan eksistere for en variabel. Enhver tilordning til variabelen overskriver den forrige, og all informasjon i den forrige verdien går tapt. Uten flere kopier av variabelen kan ikke flere dataverdier lagres. Hvis verdien endres, må hvert objekt som det påvirker fungere med den nye verdien, og hvis den gamle verdien ikke var ment å bli slettet, kan endringen vise seg å være skadelig for alle forekomstobjekter av en bestemt klassetype. Med mindre variabelen på en eller annen måte er låst ved opprettelse, får risikoen for uventet endring og den påfølgende ødeleggelsen det kan føre til på objekter at noen programmerere unngår statiske variabler når det er mulig.
Statiske variabler kan noen ganger anses som fleksible av samme grunn som de kan kalles restriktive. Selv om en variables verdi ikke er låst, kan planlagte endringer i verdien ha positive effekter. En variabel som deles mellom alle objekter i en klasse er garantert å være konsistent og kan brukes både i og utenfor klassen med tillit til at dens verdi alltid er den samme. Statiske variabler har en rekke nyttige applikasjoner, spesielt når det gjelder vedlikehold av konstanter og implementering av serialisering. Spesielt Java er avhengig av denne statiske serialiseringsmekanismen.
Det er visse generelle regler som programmerere ofte bruker når de implementerer statiske variabler. Disse variablene fungerer vanligvis best som små dataverdier fordi store statiske objekter kan gjøre et program langt mer stivt enn det må være. Små dataverdier kan raskt og enkelt endres uten for mye frykt for å innføre feil. Store statiske objekter tar mer tid og krefter på å endre seg, og er også mer utsatt for å få en feil som kan forstyrre alle klasseobjekter. Dette er retningslinjer, ikke uknuselige regler, og det kan være bruk for både små og store variabler, avhengig av programmet.