V tomto příkladu se naučíme, jak můžeme v Javě volat jeden konstruktor z jiného konstruktoru.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Konstruktory Java
- Metody Java
Příklad 1: Program Java pro volání jednoho konstruktoru z jiného
class Main ( int sum; // first constructor Main() ( // calling the second constructor this(5, 2); ) // second constructor Main(int arg1, int arg2) ( // add two value this.sum = arg1 + arg2; ) void display() ( System.out.println("Sum is: " + sum); ) // main class public static void main(String() args) ( // call the first constructor Main obj = new Main(); // call display method obj.display(); ) )
Výstup
Součet je: 7
Ve výše uvedeném příkladu jsme vytvořili třídu s názvem Main. Tady jste uvnitř třídy Main vytvořili dva konstruktory.
Main() (… ) Main(int arg1, int arg2) (… )
Uvnitř prvního konstruktoru jsme použili this
klíčové slovo pro volání druhého konstruktoru.
this(5, 2);
Zde je druhý konstruktor volán z prvního konstruktoru předáním argumentů 5 a 2 .
Poznámka : Řádek uvnitř konstruktoru, který volá jiný konstruktor, by měl být prvním řádkem konstruktoru. To znamená, že this(5, 2)
by měl být první řádek Main()
.
Příklad 2: Zavolejte konstruktor nadtřídy z konstruktoru podřízené třídy
Můžeme také volat konstruktor nadtřídy z konstruktoru podřízené třídy pomocí super()
.
// superclass class Languages ( // constructor of the superclass Languages(int version1, int version2) ( if (version1> version2) ( System.out.println("The latest version is: " + version1); ) else ( System.out.println("The latest version is: " + version2); ) ) ) // child class class Main extends Languages ( // constructor of the child class Main() ( // calling the constructor of super class super(11, 8); ) // main method public static void main(String() args) ( // call the first constructor Main obj = new Main(); ) )
Výstup
Nejnovější verze je: 11
Ve výše uvedeném příkladu jsme vytvořili nadtřídu s názvem Jazyky a podtřídu Main. Uvnitř konstruktoru hlavní třídy si všimněte řádku,
super(11, 8);
Tady voláme konstruktor nadtřídy (tj. Languages(int version1, int version2)
) Z konstruktoru podtřídy ( Main()
).