Kaj so statične spremenljivke?

Statične spremenljivke, imenovane tudi globalne spremenljivke, so deli podatkov, ki niso povezani z določenim primerkom razreda. Samo ena vrednost za te spremenljivke lahko obstaja ne glede na število ustvarjenih predmetov razreda. Odvisno od konteksta so lahko statične spremenljivke bolj prilagodljive ali bolj omejevalne kot njihove spremenljivke primerka, ki imajo svoje diskretne vrednosti za vsak poseben predmet vrste razreda. V objektno usmerjenih programskih jezikih dobra programska praksa običajno narekuje, da je uporaba statičnih objektov, metod ali spremenljivk čim manjša, vendar imajo uporabne aplikacije.

Eden glavnih razlogov, da se statične spremenljivke včasih štejejo za omejevalne, je, da za spremenljivko ne more obstajati več kot ena vrednost. Vsaka dodelitev spremenljivki prepiše prejšnjo in vse informacije v prejšnji vrednosti se izgubijo. Brez več kopij spremenljivke ni mogoče shraniti več podatkovnih vrednosti. Če se vrednost spremeni, mora vsak predmet, na katerega vpliva, delovati z novo vrednostjo, in če stara vrednost ni bila mišljena za brisanje, bi se sprememba lahko izkazala za škodljivo za vsak predmet primerka določenega tipa razreda. Če spremenljivka ob ustvarjanju ni nekako zaklenjena, nevarnost nepričakovane spremembe in posledično opustošenja, ki bi jo lahko povzročila na objektih, povzroči, da se nekateri programerji izogibajo statičnim spremenljivkam, kadar koli je to mogoče.

Statične spremenljivke se včasih lahko štejejo za prilagodljive iz istega razloga, ki jih lahko imenujemo omejevalne. Tudi če vrednost spremenljivke ni zaklenjena, imajo lahko načrtovane spremembe njene vrednosti pozitivne učinke. Zagotovljeno je, da je spremenljivka, ki je v skupni rabi med vsemi predmeti razreda, dosledna in se lahko uporablja tako znotraj kot zunaj razreda z zaupanjem, da je njena vrednost vedno enaka. Spremenljivke, ki so statične, imajo različne uporabne aplikacije, predvsem pri vzdrževanju konstant in izvajanju serializacije. Zlasti Java se močno zanaša na ta mehanizem statične serializacije.

Obstajajo nekatera splošna pravila, ki jih programerji pogosto uporabljajo pri izvajanju statičnih spremenljivk. Te spremenljivke običajno najbolje delujejo kot majhne vrednosti podatkov, ker lahko veliki statični objekti naredijo program veliko bolj tog, kot bi moral biti. Majhne vrednosti podatkov je mogoče hitro in enostavno spremeniti brez prevelikega strahu pred vnosom napak. Za spreminjanje velikih statičnih objektov je potrebno več časa in truda, poleg tega pa so bolj nagnjeni k pojavu napake, ki bi motila vse predmete razreda. To so smernice, ne nezlomljiva pravila in lahko se uporabljajo tako majhne kot velike spremenljivke, odvisno od programa.