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.