Class (Třída v OOP)

Třída definuje vlastnosti a chování, které budou mít všechny objekty z ní vytvořené. Zatímco třída je pouze teoretický popis (např. výkres domu), objekt je již existující entita (konkrétní postavený dům).

Struktura třídy

Každá třída se skládá ze dvou hlavních složek:

1. **Atributy (Vlastnosti / Data):** Proměnné, které uchovávají stav objektu (např. barva, jméno, velikost).
2. **Metody (Funkce / Chování):** Funkce, které definují, co objekt umí dělat (např. jet, mluvit, vypočítat cenu).

Vztah mezi třídou a objektem (Instanciace)

Proces vytvoření konkrétního objektu ze třídy se nazývá instanciace. Z jedné třídy můžeme vytvořit nekonečné množství objektů, z nichž každý může mít jiné hodnoty atributů.

Šablona (Třída: Auto)	Objekt A (Instance)	Objekt B (Instance)
Atribut: barva	červená	modrá
Atribut: značka	Škoda	BMW
Metoda: nastartuj()	(společné chování)	(společné chování)

Čtyři pilíře OOP spojené s třídami

Práce s třídami se opírá o čtyři základní principy:

1. Zapouzdření (Encapsulation)

Třída skrývá svá vnitřní data před vnějším světem. Přístup k nim je povolen pouze přes veřejné metody (např. pomocí tzv. getterů a setterů). Tím se zajišťuje, že nikdo omylem nezmění vnitřní stav objektu nevalidním způsobem.

2. Dědičnost (Inheritance)

Třídy mohou tvořit hierarchie. Nová třída (potomek) může převzít vlastnosti a metody existující třídy (rodič) a přidat k nim své vlastní. * *Příklad:* Třída Pes a Kočka dědí od obecné třídy Zvíře.

3. Polymorfismus (Mnohotvárnost)

Umožňuje různým třídám reagovat na stejné volání metody různým způsobem. * *Příklad:* Metoda vydejZvuk() u třídy Pes vyštěkne, zatímco u třídy Kočka zamňouká.

4. Abstrakce (Abstraction)

Třída umožňuje uživateli pracovat se složitým systémem pomocí jednoduchého rozhraní, aniž by musel rozumět vnitřní implementaci.

Speciální metody třídy

* Konstruktor: Speciální metoda, která se zavolá automaticky v okamžiku vytvoření objektu. Slouží k nastavení výchozích hodnot atributů. * Destruktor: Metoda, která se provede při zániku objektu (v moderních jazycích jako Java nebo Python se o toto často stará Garbage Collector).

Příklad (Pseudokód)

class Pes { // Atributy String jmeno; int vek; // Konstruktor Pes(String jmeno) { this.jmeno = jmeno; } // Metoda void stekej() { print(jmeno + " říká: Haf!"); } } // Vytvoření objektu Pes mujPes = new Pes("Alík"); mujPes.stekej(); // Výstup: Alík říká: Haf!

Související pojmy: Objekt, OOP, Instance, Dědičnost, Zapouzdření, Polymorfismus, Konstruktor.