Co jsou statické proměnné?
Statické proměnné, také nazývané globální proměnné, jsou kusy dat, které nejsou spojeny s konkrétním příkladem třídy. Pouze jedna hodnota pro tyto proměnné může existovat bez ohledu na počet vytvořených objektů třídy. V závislosti na kontextu mohou být statické proměnné buď flexibilnější nebo restriktivnější než jejich instance proměnné protějšky, které mají své vlastní diskrétní hodnoty pro každý konkrétní objekt typu třídy. V programovacích jazycích zaměřených na objekt, dobrá programovací praxe obvykle diktuje, že použití statických objektů, metod nebo proměnných je udržováno na minimu, ale mají užitečné aplikace. Jakékoli přiřazení k proměnné přepíše předchozí a jakékoli informace v předchozí hodnotě jsou ztraceny. Bez více kopií proměnné nelze uložit více dat. Pokud je hodnotaje změněna, každý objekt, který ovlivňuje, musí fungovat s novou hodnotou, a pokud by se stará hodnota neměla být smazána, může se změna ukázat škodlivé pro každý instanci objektu konkrétního typu třídy. Pokud není proměnná nějakým způsobem uzamčena při tvorbě, riziko neočekávané změny a následného chaosu, které by mohlo způsobit objekty, způsobí, že někteří programátoři zabrání statickým proměnným, kdykoli je to možné.
Statické proměnné lze někdy považovat za flexibilní ze stejného důvodu, že mohou být nazývány restriktivní. I když hodnota proměnné není uzamčena, plánované změny její hodnoty mohou mít pozitivní účinky. Je zaručena proměnná, která je sdílena mezi všemi objekty třídy, a může být použita uvnitř i vně třídy s jistotou, že její hodnota je vždy stejná. Proměnné, které jsou statické, mají řadu užitečných aplikací, zejména při údržbě cOnstants a implementace serializace. Zejména Java se velmi spoléhá na tento statický serializační mechanismus.
Existují určitá obecná pravidla, která programátoři často používají při implementaci statických proměnných. Tyto proměnné obvykle fungují nejlépe jako malé hodnoty dat, protože velké statické objekty mohou učinit program mnohem rigidnější, než musí být. Hodnoty malých dat lze rychle a snadno změnit bez přílišného strachu z zavedení chyb. Velké statické objekty vyžadují více času a úsilí o změnu a jsou také náchylnější k zavedení chyby, která by narušila všechny objekty třídy. Toto jsou pokyny, nikoli nerozbitné pravidla, a v závislosti na programu mohou existovat použití jak pro malé i velké proměnné,