Referenční typy - třída
5. Datové složky
5.2. Statické datové složky
Statické datové složky nejsou součástí jednotlivých instancí, ale pouze třídy jako takové. Datové složky jsou společné pro všechny instance (lze je vnímat jako globální proměnné uvnitř třídy) a jsou uvozeny klíčovým slovem static. Obecná syntaxe nestatické datové složky může vypadat následovně:
modifikátorPřistupu static modifConstRead datovýTyp identifikátor;
modifikátorPřistupu static modifConstRead datovýTyp identifikátor = inicializace;
kde:
- static - klíčové slovo označující, že jde o statickou datovou složku
- Podstata u ostatní částí je stejná jako v případě nestatické datové složky – viz kapitola Nestatické datové složky.
Protože jsou statické datové složky společné pro všechny instance, existují nezávisle na tom, kolik instancí vytvoříme. Existují od okamžiku spuštění programu, před vytvořením první instance a existují i po zániku poslední instance. [3]
Ilustrativní příklad AutoStatickaDatovaSlozka
Program AutoStatickaDatovaSlozka
- Popis: Deklarace nestatické třídy, statické datové složky
- Zadání: V rámci předchozí nestatické třídy Auto v rámci jmenného prostoru Trida, deklarujte statickou celočíselnou datovou složku delkaGrafUkazatele
- Řešení: Bude postupně probráno v následujícím textu (zdrojový kód tohoto příkladu bude využit pro sestavení konečné podoby třídy Auto)
V případě třídy Auto bychom si mohli graficky zobrazit aktuální stav paliva
v nádrži auta. Tento stav zobrazíme v hranatých závorkách, mezi nimiž
umístíme znaky "#", které budou zobrazovat aktuální stav paliva uvnitř nádrže. Počet celkových dílků grafického ukazatele stavu paliva tedy pro jednotlivé instance třídy Auto bude konstantní, ale zároveň
chceme mít možnost jej modifikovat kvůli různým typům aut - objem nádrže je různý. Proto tuto datovou složku třídy Auto reprezentující počet znaků
v grafickém ukazateli budeme deklarovat jako statickou – viz Kód 1.
//Deklarace statické datové složky static int delkaGrafUkazatele;
Kód 1: Příklad deklarace statické datové složky uvnitř třídy Auto
Dalším typem statické složky je veřejná konstanta deklarovaná ve třídě – hodnota konstanty se nezmění. Datová složka sice nepoužívá klíčové slovo static, ale přesto je svojí podstatou statická. [6]