Mitä ovat staattiset muuttujat?

Staattiset muuttujat, joita kutsutaan myös globaaleiksi muuttujiksi, ovat tietoja, jotka eivät ole sidoksissa tiettyyn luokan esiintymään. Näille muuttujille voi olla olemassa vain yksi arvo riippumatta luotujen luokkaobjektien määrästä. Kontekstista riippuen staattiset muuttujat voivat olla joko joustavampia tai rajoittavampia kuin niiden ilmentymämuuttujat, joilla on omat erilliset arvonsa jokaiselle luokkatyypin objektille. Objektisuuntautuneissa ohjelmointikielissä hyvän ohjelmointikäytännön mukaan yleensä staattisten objektien, menetelmien tai muuttujien käyttö on pidettävä mahdollisimman vähäisenä, mutta niillä on hyödyllisiä sovelluksia.

Yksi tärkeä syy siihen, että staattisia muuttujia pidetään toisinaan rajoittavina, on se, että muuttujalle ei voi koskaan olla enemmän kuin yksi arvo. Kaikki muuttujan määritykset korvaavat edellisen ja kaikki edellisen arvon tiedot menetetään. Ilman muuttujan useita kopioita useita data -arvoja ei voida tallentaa. Jos arvoa muutetaan, jokaisen siihen vaikuttavan objektin on toimittava uuden arvon kanssa, ja jos vanhaa arvoa ei ollut tarkoitus poistaa, muutos voi osoittautua haitalliseksi jokaiselle tietyn luokkatyypin esiintymäobjektille. Ellei muuttuja ole jollain tavalla lukittu luomisen yhteydessä, odottamattomien muutosten riski ja sen jälkeinen tuho, jonka se voi aiheuttaa kohteille, saa jotkut ohjelmoijat välttämään staattisia muuttujia aina kun mahdollista.

Staattisia muuttujia voidaan joskus pitää joustavina samasta syystä, joita voidaan kutsua rajoittaviksi. Vaikka muuttujan arvoa ei ole lukittu, sen muutoksella voi olla myönteisiä vaikutuksia. Muuttujan, joka on jaettu kaikkien luokan objektien kesken, taataan olevan johdonmukainen ja sitä voidaan käyttää sekä luokan sisällä että sen ulkopuolella luottavaisin mielin, että sen arvo on aina sama. Staattisilla muuttujilla on useita hyödyllisiä sovelluksia, erityisesti vakioiden ylläpitämisessä ja sarjoittamisen toteuttamisessa. Erityisesti Java luottaa vahvasti tähän staattiseen sarjamekanismiin.

On olemassa tiettyjä yleisiä sääntöjä, joita ohjelmoijat usein käyttävät staattisten muuttujien toteuttamisessa. Nämä muuttujat toimivat yleensä parhaiten pieninä data -arvoina, koska suuret staattiset objektit voivat tehdä ohjelmasta paljon jäykemmän kuin sen on oltava. Pienet arvot voidaan muuttaa nopeasti ja helposti ilman liiallista pelkoa virheiden syntymisestä. Suurten staattisten objektien muuttaminen vie enemmän aikaa ja vaivaa, ja ne ovat myös alttiimpia virheille, jotka häiritsevät kaikkia luokan objekteja. Nämä ovat ohjeita, eivät rikkomattomia sääntöjä, ja ohjelmasta riippuen sekä pienille että suurille muuttujille voi olla käyttöä.