Konstruktory v Javě

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.

  1. Název konstruktoru musí být stejný jako název jeho třídy
  2. Konstruktor nesmí mít žádný explicitní návratový typ
  3. 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ů:

  1. Výchozí konstruktor (konstruktor no-arg)
  2. 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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *