Obsah
Instance (Konkrétní objekt)
Instance je konkrétní realizace třídy v operační paměti počítače. Zatímco třída existuje v kódu programu jako definice, instance vzniká až za běhu programu (runtime). Každá instance má svou vlastní identitu a vlastní hodnoty dat, přestože sdílí stejnou strukturu s ostatními instancemi téže třídy.
Rozdíl mezi třídou a instancí
Tento vztah je nejlépe pochopitelný na analogiích z reálného světa:
| Kontext | Třída (Předloha) | Instance (Objekt) |
|---|---|---|
| Stavebnictví | Architektonický plán domu. | Konkrétní dům na adrese Horní 10. |
| Výroba | Formička na vánoční cukroví. | Jedna konkrétní upečená hvězdička. |
| Biologie | Definice druhu „Pes domácí“. | Váš pes Alík. |
Životní cyklus instance
Instance prochází během běhu programu třemi hlavními fázemi:
1. Instanciace (Vznik): Proces vytvoření instance pomocí klíčového slova (často ''new''). V tomto kroku se vyhradí místo v paměti a zavolá se konstruktor třídy. 2. Existence (Používání): Instance uchovává svá data v atributech a vykonává činnosti pomocí metod. 3. Destrukce (Zánik): Když už instance není potřeba, je z paměti odstraněna (v jazycích jako Java nebo Python to dělá automaticky **Garbage Collector**, v C++ to musí udělat programátor).
Vlastnosti instancí
1. Nezávislost dat
Každá instance má své vlastní „vnitřní políčka“ (atributy). Pokud změníte barvu jednoho objektu Auto, barva ostatních instancí třídy Auto zůstane nezměněna.
2. Společné metody
Všechny instance stejné třídy sdílejí stejný kód metod. Všechna „Auta“ vědí, jak se používá metoda brzdi(), ale každé brzdí v jiný čas a s jinou intenzitou podle svého stavu.
Příklad v kódu (Java/C#)
Představme si třídu Uživatel. Můžeme mít tisíce instancí, ale každá reprezentuje jiného člověka:
// Definice třídy class Uzivatel { String jmeno; } // Vytváření instancí (objektů) Uzivatel instance1 = new Uzivatel(); instance1.jmeno = "Petr"; Uzivatel instance2 = new Uzivatel(); instance2.jmeno = "Jana"; // instance1 a instance2 jsou dva různé objekty v paměti.
Instance vs. Statické členy
Některé prvky ve třídě mohou být označeny jako statické (static). Tyto prvky nepatří konkrétní instanci, ale třídě jako celku. * Instanční proměnná: Každý člověk má jiné jméno. * Statická proměnná: Celkový počet lidí na planetě (společné číslo pro všechny).
Související pojmy: Class, Objekt, OOP, Konstruktor, Garbage Collector, Statika.
