V Javě je konstruktor blok kódů podobný této metodě. Volá se, když je vytvořena instance třídy. V době volání konstruktoru je paměť pro objekt přidělena v paměti.
Jedná se o speciální typ metody, která se používá k inicializaci objektu.
Pokaždé, když je objekt vytvořen pomocí klíčového slova new (), je volán alespoň jeden konstruktor.
Volá výchozí konstruktor, pokud ve třídě není k dispozici žádný konstruktor. V takovém případě poskytuje kompilátor Java ve výchozím nastavení výchozí konstruktor.
V Javě existují dva typy konstruktorů: konstruktor no-arg a parametrizovaný konstruktor.
Poznámka: Jmenuje se konstruktor, protože vytváří hodnoty v době vytváření objektu. Není nutné psát konstruktor pro třídu. Je to proto, že kompilátor Java vytvoří výchozí konstruktor, pokud vaše třída žádný nemá.
Pravidla pro vytváření konstruktoru Java
Pro konstruktor jsou definována dvě pravidla.
- Název konstruktoru musí být stejný jako název jeho třídy
- Konstruktor nesmí mít žádný explicitní návratový typ
- Konstruktor jazyka Java nemůže být abstraktní, statický, konečný a synchronizované
Poznámka: Při deklaraci konstruktoru můžeme použít modifikátory přístupu. Řídí vytváření objektu. Jinými slovy, v Javě můžeme mít soukromý, chráněný, veřejný nebo výchozí konstruktor.
Typy konstruktorů Java
V Javě existují dva typy konstruktorů:
- Výchozí konstruktor (konstruktor no-arg)
- Parametrizovaný konstruktor
Výchozí konstruktor Java
Konstruktor se nazývá „Výchozí konstruktor“, pokud žádný nemá parametr.
Syntaxe výchozího konstruktoru:
Příklad výchozího konstruktoru
V tomto příkladu vytváříme ne- konstruktor arg ve třídě Bike. Bude vyvolána v době vytváření objektu.
Vyzkoušejte to
Výstup:
Bike is created
Pravidlo: Pokud ve třídě není žádný konstruktor, kompilátor automaticky vytvoří výchozí konstruktor.
Otázka) Jaký je účel výchozího konstruktoru?
Výchozí konstruktor se používá k poskytnutí výchozích hodnot objektu, jako je 0, null atd., v závislosti na typu.
Příklad výchozího konstruktoru, který zobrazuje výchozí hodnoty
Vyzkoušejte to
Výstup:
0 null0 null
Vysvětlení: Ve výše uvedené třídě nejste vytvoření libovolného konstruktoru, takže překladač vám poskytne výchozí konstruktor. Zde 0 a hodnoty null poskytuje výchozí konstruktor.
Java Parameterized Constructor
Konstruktor, který má konkrétní počet parametrů, se nazývá konstruktor s parametry.
Proč používat konstruktor s parametry?
Parametrizovaný konstruktor se používá k poskytování různých hodnot odlišným objektům. Můžete však zadat také stejné hodnoty.
Příklad parametrizovaného konstruktoru
V tomto příkladu jsme vytvořili konstruktor třídy Student, který má dva parametry. V konstruktoru můžeme mít libovolný počet parametrů.
Otestujte nyní
Výstup:
111 Karan222 Aryan
Přetížení konstruktoru v Javě
V Javě je konstruktor stejně jako metoda, ale bez návratového typu. Může být také přetížen jako metody Java.
Přetížení konstruktoru v Javě je technika, jak mít více než jeden konstruktor s různými seznamy parametrů. Jsou uspořádány tak, že každý konstruktor provádí jiný úkol. Jsou rozlišeny kompilátorem podle počtu parametrů v seznamu a jejich typů.
Příklad přetížení konstruktoru
Vyzkoušejte to
Výstup:
111 Karan 0222 Aryan 25
Rozdíl mezi konstruktorem a metodou v Javě
Mezi konstruktory a metodami existuje mnoho rozdílů. Jsou uvedeny níže.
Java Constructor | Java Method |
---|---|
K inicializaci stavu objektu se používá konstruktor. | K odhalení chování objektu se používá metoda. |
Konstruktor musí nemá návratový typ. | Metoda musí mít návratový typ. |
Konstruktor je vyvolán implicitně. | Metoda je vyvolána explicitně. |
Kompilátor Java poskytuje výchozí konstruktor, pokud nemáte ve třídě žádný konstruktor. | Metodu neposkytuje překladač v každém případě. |
Název konstruktoru musí být stejný jako název třídy. | Název metody může nebo nemusí být stejný jako třída name. |
Java Copy Constructor
V Javě neexistuje žádný konstruktor kopírování.Můžeme však zkopírovat hodnoty z jednoho objektu do jiného jako konstruktor kopírování v C ++.
Existuje mnoho způsobů, jak zkopírovat hodnoty jednoho objektu do jiného v Javě. Jsou to:
- Podle konstruktoru
- Přiřazením hodnot jednoho objektu k druhému
- metodou clone () třídy Object
V tomto příkladu zkopírujeme hodnoty jednoho objektu do jiného pomocí konstruktoru Java.
Vyzkoušejte to
Výstup:
111 Karan111 Karan
Kopírování hodnot bez konstruktoru
Hodnoty jednoho objektu můžeme kopírovat přidělením hodnot objektů jinému objekt. V tomto případě není nutné konstruktor vytvářet.
Vyzkoušejte to
Výstup:
111 Karan111 Karan
Otázka) Vrací konstruktor nějakou hodnotu?
Ano, je to aktuální instance třídy (Nelze použít návratový typ, přesto vrací hodnotu).
Může konstruktor provádět jiné úkoly místo inicializace?
Ano, jako je vytváření objektů, spouštění vlákna, volání metody atd. V konstruktoru můžete provádět jakoukoli operaci, jak provádíte v metodě.
Existuje v Javě třída Constructor?
Ano.
Jaký je účel třídy Constructor?
Java poskytuje třídu Constructor, která může slouží k získání interních informací konstruktoru ve třídě. Nachází se v balíčku java.lang.reflect.