Konstruktor je mechanismus, který zajišťuje, že objekt „vstoupí do života“ v platném a předvídatelném stavu. Bez konstruktoru by atributy objektu mohly obsahovat náhodná data nebo prázdné hodnoty (null), což by vedlo k pádům programu.
init, nebo PHP s __construct).void), protože jeho účelem není vracet výsledek, ale vytvořit objekt.Pokud programátor ve třídě žádný konstruktor nenapíše, kompilátor jej vytvoří sám. Tento konstruktor nemá žádné parametry a nastaví atributy na základní hodnoty (nuly, prázdné řetězce).
Umožňuje předat data přímo při vytváření objektu. Tím zajistíte, že objekt bude mít hned od začátku konkrétní vlastnosti.
* *Příklad:* new Auto(„Červená“, „Škoda“)
Slouží k vytvoření nového objektu jako přesné kopie jiného, již existujícího objektu téže třídy.
V jedné třídě může existovat více konstruktorů najednou, pokud se liší svými parametry. To umožňuje vytvářet objekty různými způsoby.
| Konstruktor | Příklad volání | Výsledek |
|---|---|---|
| Bez parametrů | new Uzivatel() | Vytvoří anonymního hosta. |
| S jedním parametrem | new Uzivatel(„Petr“) | Vytvoří uživatele se jménem. |
| Se všemi parametry | new Uzivatel(„Petr“, 25) | Vytvoří uživatele s plným profilem. |
class Kniha { String nazev; int rokVydani; // Konstruktor Kniha(String nazev, int rokVydani) { this.nazev = nazev; // 'this' odkazuje na atribut třídy this.rokVydani = rokVydani; } } // Použití konstruktoru Kniha mojeKniha = new Kniha("Zaklínač", 1993);
Zatímco konstruktor objekt staví, destruktor jej bourá. Volá se v okamžiku, kdy objekt zaniká. V jazycích s automatickou správou paměti (Java, Python, C#) se destruktory používají zřídka, protože úklid řeší Garbage Collector. V jazyce C++ je však destruktor klíčový pro ruční uvolnění paměti, aby nedocházelo k jejímu úniku (Memory Leak).
Související pojmy: Class, Instance, OOP, Atribut, Metoda, Garbage Collector, Memory Leak.