Konštruktory Java (s príkladmi)

V tomto výučbe sa pomocou príkladov dozvieme o konštruktoroch Java, ich typoch a o tom, ako ich používať.

Čo je to konštruktér?

Konštruktor v Jave je podobný metóde, ktorá sa vyvolá pri vytvorení objektu triedy.

Na rozdiel od metód Java má konštruktor rovnaký názov ako trieda a nemá žiadny návratový typ. Napríklad,

 test triedy (Test () (// telo konštruktora))

Tu Test()je konštruktér. Má rovnaký názov ako trieda a nemá návratový typ.

Odporúčané čítanie: Prečo konštruktéri nevracajú hodnoty

Príklad 1: Java Constructor

 class Main ( private String name; // constructor Main() ( System.out.println("Constructor Called:"); name = "Programiz"; ) public static void main(String() args) ( // constructor is invoked while // creating an object of the Main class Main obj = new Main(); System.out.println("The name is " + obj.name); ) )

Výstup :

 Konštruktér sa volá: Názov je Programiz

Vo vyššie uvedenom príklade sme vytvorili konštruktor s názvom Main(). Vo vnútri konštruktora inicializujeme hodnotu premennej názvu.

Všimnite si vyhlásenie o vytvorení objektu triedy Main.

 Main obj = new Main();

Tu sa pri vytvorení objektu Main()zavolá konštruktor. A hodnota premennej názvu je inicializovaná.

Preto program vytlačí hodnotu premenných mien ako Programiz.

Typy konštruktora

V Jave možno konštruktory rozdeliť do 3 typov:

  1. Konštruktor bez Arg
  2. Parametrizovaný konštruktor
  3. Predvolený konštruktor

1. Java No-Arg konštruktory

Podobne ako metódy, aj konštruktor Java môže, ale nemusí mať akékoľvek parametre (argumenty).

Ak konštruktor neprijíma žiadne parametre, je známy ako konštruktor bez argumentov. Napríklad,

 private Constructor() ( // body of the constructor )

Príklad 2: Java súkromný konštruktor no-arg

 class Main ( int i; // constructor with no parameter private Main() ( i = 5; System.out.println("Constructor is called"); ) public static void main(String() args) ( // calling the constructor without any parameter Main obj = new Main(); System.out.println("Value of i: " + obj.i); ) )

Výstup :

 Konštruktor sa volá Hodnota i: 5

Vo vyššie uvedenom príklade sme vytvorili konštruktor Main(). Konštruktér tu neprijíma žiadne parametre. Preto je známy ako konštruktor bez arg.

Všimnite si, že sme deklarovali konštruktor ako súkromný.

Po deklarácii konštruktora k privatenemu nie je možné získať prístup mimo triedy. Takže vytváranie objektov mimo triedy je zakázané pomocou súkromného konštruktora.

Tu vytvárame objekt vo vnútri tej istej triedy. Preto je program schopný získať prístup ku konštruktoru. Ak sa chcete dozvedieť viac, navštívte stránku Java Implement Private Constructor.

Ak však chceme vytvárať objekty mimo triedy, potom musíme deklarovať konštruktor ako public.

Príklad 3: Java verejné konštruktory no-arg

 class Company ( String name; // public constructor public Company() ( name = "Programiz"; ) ) public class Main ( public static void main(String() args) ( // object is created in another class Company obj = new Company(); System.out.println("Company name = " + obj.name); ) )

Výstup :

 Názov spoločnosti = Programiz

Odporúčané čítanie: Modifikátor prístupu Java

2. Java parametrizovaný konštruktor

Konštruktor Java môže tiež prijať jeden alebo viac parametrov. Takéto konštruktory sú známe ako parametrizované konštruktory (konštruktor s parametrami).

Príklad 4: Parametrizovaný konštruktor

 class Main ( String languages; // constructor accepting single value Main(String lang) ( languages = lang; System.out.println(languages + " Programming Language"); ) public static void main(String() args) ( // call constructor by passing a single value Main obj1 = new Main("Java"); Main obj2 = new Main("Python"); Main obj3 = new Main("C"); ) )

Výstup :

 Programovací jazyk Java Programovací jazyk Python C Programovací jazyk C

Vo vyššie uvedenom príklade sme vytvorili konštruktor s názvom Main(). Konštruktor tu vezme jediný parameter. Všimnite si výraz,

 Main obj1 = new Main("Java");

Tu odovzdávame jednu hodnotu konštruktoru. Na základe zadaného argumentu sa jazyková premenná inicializuje vo vnútri konštruktora.

3. Predvolený konštruktor Java

Pokiaľ nevytvoríme žiadny konštruktor, kompilátor Java počas vykonávania programu automaticky vytvorí konštruktor no-arg. Tento konštruktor sa nazýva predvolený konštruktor.

Príklad 5: Predvolený konštruktor

 class Main ( int a; boolean b; public static void main(String() args) ( // A default constructor is called Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

Výstup :

 a = 0 b = nepravda

Tu sme nevytvorili žiadnych konštruktérov. Preto kompilátor Java automaticky vytvorí predvolený konštruktor.

Predvolený konštruktor inicializuje všetky neinicializované premenné inštancie s predvolenými hodnotami.

Typ Predvolená hodnota
boolean nepravdivé
byte 0
short 0
int 0
long 0L
char u0000
float 0,0f
double 0,0 d
object Referenčná hodnota null

Vo vyššie uvedenom programe, premenné a a b sú inicializované s východiskovými hodnotami 0 a falsev tomto poradí.

The above program is equivalent to:

 class Main ( int a; boolean b; // a private constructor private Main() ( a = 0; b = false; ) public static void main(String() args) ( // call the constructor Main obj = new Main(); System.out.println("Default Value:"); System.out.println("a = " + obj.a); System.out.println("b = " + obj.b); ) )

The output of the program is the same as Example 5.

Important Notes on Java Constructors

  • Constructors are invoked implicitly when you instantiate objects.
  • The two rules for creating a constructor are:
    The name of the constructor should be the same as the class.
    A Java constructor must not have a return type.
  • If a class doesn't have a constructor, the Java compiler automatically creates a default constructor during run-time. The default constructor initializes instance variables with default values. For example, the int variable will be initialized to 0
  • Constructor types:
    No-Arg Constructor - a constructor that does not accept any arguments
    Parameterized constructor - a constructor that accepts arguments
    Default Constructor - a constructor that is automatically created by the Java compiler if it is not explicitly defined.
  • A constructor cannot be abstract or static or final.
  • A constructor can be overloaded but can not be overridden.

Constructors Overloading in Java

Similar to Java method overloading, we can also create two or more constructors with different parameters. This is called constructors overloading.

Example 6: Java Constructor Overloading

 class Main ( String language; // constructor with no parameter Main() ( this.language = "Java"; ) // constructor with a single parameter Main(String language) ( this.language = language; ) public void getName() ( System.out.println("Programming Langauage: " + this.language); ) public static void main(String() args) ( // call constructor with no parameter Main obj1 = new Main(); // call constructor with a single parameter Main obj2 = new Main("Python"); obj1.getName(); obj2.getName(); ) )

Output:

 Programming Language: Java Programming Language: Python

Vo vyššie uvedenom príklade máme dva konštruktory: Main()a Main(String language). Tu konštruktor inicializuje hodnotu jazyka premennej rôznymi hodnotami.

Na základe parametra odovzdaného počas vytvárania objektu sa volajú rôzne konštruktory a priraďujú sa rôzne hodnoty.

Je tiež možné zavolať jedného konštruktora z iného konštruktora. Ak sa chcete dozvedieť viac, navštívte Java Call One Constructor od druhého.

Poznámka : Na thisurčenie premennej triedy sme použili kľúčové slovo. Ak sa chcete dozvedieť viac informácií o thiskľúčovom slove, navštívte Java toto kľúčové slovo.

Zaujímavé články...