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.
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. |
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).
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.
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ř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.
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.