Trieda (programovanie)
Z Wikipédie
Trieda je základným stavebným prvkom v objektovo-orientovanom programovaní. Logicky spája dve časti, ktoré boli predtým chápané osamote: dáta a operácie nad nimi do jedného celku. Trieda vychádza z pozorovaní reálneho sveta, v ktorom existujú skupiny objektov s určitými vlastnosťami, pričom tieto vlastnosti menia práve tieto objekty.
Trieda je teda balíček, ktorý pozostáva z metadát popisujúcich chovanie triedy vo výpočtovom prostredí. Tieto metadáta predstavujú návod na vytvorenie inštancie - jedného exemplára triedy. Ak použijeme prirovnanie z reálneho sveta, tak trieda predstavuje architektonický plán budovy (popisuje rozmery, tvar, použitý materiál atď) a inštancia je jedna konkrétna budova, postavená podľa tohto plánu.
Tieto popisné metadáta sú len formálnym vyjadrením toho, čo trieda predstavuje (napríklad vo forme zdrojového kódu). Po preložení prekladačom, resp. interpreterom jazyka sa z týchto informácií vytvára dátový typ - popis triedy v rámci výpočtového prostredia.
Základným prvkom triedy sú dáta, s ktorými pracuje - niekedy sa označujú ako stavové dáta, pretože jednoznačne určujú stav objektu v každom čase jeho existencie. Druhým prvkom sú operácie nad týmito dátami, ktoré definujú možné operácie nad objektom a predstavujú rozhranie s prostredím.
[úprava] Štruktúra

Každý element triedy (dáta aj metódy) musí mať definovaný modifikátor prístupu, ktorý určuje, kto má k danému elementu povolený prístup, pričom platí, že každá trieda má prístup ku všetkým vlastným elementom. Základné modifikátory sú:
Názov | UML prefix | Prístup z oddedenej triedy | Prístup z vonkajšej triedy |
---|---|---|---|
public | + | áno | áno |
protected | # | áno | nie |
private | - | nie | nie |
V ďalšom texte budeme pre označenie prístupu používať UML notáciu uvedenú v tabuľke. Napríklad pre protected premennú typu int môžeme zapísať nasledovným spôsobom:
# x : int
Po vytvorení dátového typu prekladač definuje ešte špeciálnu premennú, ktorá reprezentuje identitu objektu. Táto premenná býva označovaná ako this, self a podobne a obsahuje referenciu alebo ukazateľ na samého seba. Táto premenná je vždy definovaná ako private.
- Príklad
Jednoduchým príkladom je trieda lampa. Lampu v závislosti na kontexte môžeme modelovať napríklad ako triedu, ktorá má jednu stavovú premennú (_IsTurnedOn), ktorá určuje, či je lampa zapnutá, alebo nie. Pretože trieda potrebuje aj rozhranie, pomocou ktorého s ním bude okolité prostredie komunikovať, definujme operácie zapnutia (TurnOn) a vypnutia (TurnOff). Okrem toho je vhodné mať možnosť zistiť, v akom je lampa stave - tento stav vieme zistiť pomocou operácie isTurnedOn.
[úprava] Dedičnosť
Objektovo-orientované programovanie umožňuje mechanizmus dedičnosti tzn. modelovanie hierarchií na základe podobnosti vlastností rovnako, ako v reálnom svete. Táto vlastnosť je modelovaná hierachickými vzťahmi medzi triedami.