Przeciążanie konstruktora w Java
Jakie przeciążanie konstruktora w Java?
Java Przeciążanie konstruktorów to technika, w której klasa może mieć dowolną liczbę konstruktorów różniących się listą parametrów. Kompilator różnicuje te konstruktory, biorąc pod uwagę liczbę parametrów na liście i ich typ.
Przykłady prawidłowych konstruktorów dla klasy Konto to:
Account(int a); Account (int a,int b); Account (String a,int b);
2 przykład: Aby zrozumieć Przeciążanie konstruktora w Java
Krok 1) Wpisz kod w edytorze.
class Demo{ int value1; int value2; /*Demo(){ value1 = 10; value2 = 20; System.out.println("Inside 1st Constructor"); }*/ Demo(int a){ value1 = a; System.out.println("Inside 2nd Constructor"); } Demo(int a,int b){ value1 = a; value2 = b; System.out.println("Inside 3rd Constructor"); } public void display(){ System.out.println("Value1 === "+value1); System.out.println("Value2 === "+value2); } public static void main(String args[]){ Demo d1 = new Demo(); Demo d2 = new Demo(30); Demo d3 = new Demo(30,40); d1.display(); d2.display(); d3.display(); } }
Krok 2) Zapisz, skompiluj i uruchom kod.
Krok 3) Błąd =?. Spróbuj usunąć błąd przed przejściem do następnego kroku Java przeciążenie konstruktora
Krok 4) Każda klasa ma wartość domyślną Konstruktor w Java. Domyślny przeciążony konstruktor Java dla demonstracja klasy is Próbny(). Jeśli nie podasz tego konstruktora, kompilator utworzy go za Ciebie i inicjuje zmienne do wartości domyślnych. Możesz zastąpić ten domyślny konstruktor i zainicjować zmienne do żądanych wartości, jak pokazano w przykładzie 1.
Ale jeśli określisz konstruktora parametrycznego, takiego jak Demo(int a), i chcesz użyć konstruktora domyślnego Java Demo(), jego określenie jest obowiązkowe.
Innymi słowy, w przypadku, gdy konstruktor przeciążający znajduje się w Java jest zastąpiony i chcesz użyć konstruktora domyślnego Java, należy to określić.
Krok 5) Odkomentuj wiersz nr 4-8. Zapisz, skompiluj i uruchom kod.
Dlaczego potrzebujemy przeciążania konstruktora w Java?
Przeciążanie konstruktora w Java pozwala na wiele konstruktorów w klasie, każdy z różnymi listami parametrów. Zwiększa elastyczność i poprawia wydajność kodu.
- Elastyczność w tworzeniu obiektów: Przeciążanie konstruktora pozwala na inicjalizację obiektów na różne sposoby, zależnie od liczby i typu parametrów.
- Możliwość ponownego użycia kodu: Możesz ponownie wykorzystać logikę konstruktora, wywołując jeden konstruktor z drugiego przy użyciu słowa kluczowego this().
- Poprawiona czytelność: Przeciążone konstruktory sprawiają, że kod staje się bardziej intuicyjny, oferując konkretne opcje konstruktora dla różnych potrzeb inicjalizacji.
- Domyślna i niestandardowa inicjalizacja: Przeciążanie konstruktora umożliwia łatwe tworzenie zarówno obiektów domyślnych, jak i inicjowanych niestandardowo.