Przeciążanie konstruktorów w Javie: wyjaśnienie, korzyści i przykłady

Opublikowany: 2021-07-22

Spis treści

Podstawy Javy

Java, ze swoimi niezwykłymi i dynamicznymi funkcjami, stała się jednym z najbardziej poszukiwanych wyborów programistów do programowania aplikacji internetowych na dużą skalę. Jest to przyjazny dla użytkownika język z szeroką gamą niezwykłych funkcji. Jego kompatybilność ze wszystkimi systemami operacyjnymi to bogate API, które uczyniło go popularnym na całym świecie. Język oferuje solidne wsparcie społeczności i doskonałe usługi dokumentacji. Java ma zestaw solidnych narzędzi programistycznych.

Konstruktorzy w Javie

Konstruktory w Javie służą do inicjalizacji stanu obiektu. Podobnie jak metody, konstruktory również zawierają grupę instrukcji lub instrukcji, które mają zostać wykonane podczas tworzenia obiektu.

Dlaczego potrzebujemy konstruktora w Javie?

Rozważmy Pudełko. Jeśli założymy, że pudełko jest klasą, może mieć kilka zmiennych, takich jak szerokość, długość i wysokość. Gdy obiekt ma zostać utworzony, klasa box nie będzie miała zdefiniowanych wartości dla jego wymiarów. W momencie tworzenia nowych obiektów konstruktory przypisują wartości zmiennym klasy. Przypisania wartości można dokonać albo za pomocą domyślnych konstruktorów Javy, albo jawnie za pomocą parametrów przekazanych przez programistę.

Kiedy wywoływany jest konstruktor?

Co najmniej jeden konstruktor jest wywoływany za każdym razem, gdy obiekt jest tworzony za pomocą słowa kluczowego new(). Ten konstruktor dostarcza wartości początkowe członkom danych klasy. Ogólnie rzecz biorąc, konstruktor jest wywoływany, gdy tworzony jest nowy obiekt lub instancja.

Przeciążanie konstruktora w Javie

Proces definiowania wielu konstruktorów tej samej klasy jest nazywany przeciążaniem konstruktorów. Jednak każdy konstruktor powinien mieć inną sygnaturę lub parametry wejściowe. Innymi słowy, przeciążanie konstruktorów w Javie to technika, która umożliwia jednej klasie posiadanie więcej niż jednego konstruktora, który różni się w zależności od przekazanej listy argumentów. Każdy przeciążony konstruktor służy do wykonywania innego zadania w klasie.

Kompilator Javy identyfikuje przeciążone konstruktory na podstawie ich list parametrów, typów parametrów i liczby parametrów wejściowych. Dlatego przeciążone konstruktory powinny mieć różne sygnatury. Sygnatura konstruktora zawiera jego nazwę i typy parametrów. Problem niejednoznaczności pojawia się, gdy dwa z konstruktorów klas mają identyczną sygnaturę.

Kompilator nie rozróżnia tych dwóch i dlatego zwraca powiadomienie o błędzie. Gdy konstruktory z różnymi sygnaturami są przeciążone, kompilator określa konstruktora do wywołania na podstawie liczby parametrów wejściowych obiektów.

Korzystanie z przeciążenia konstruktora

Ponieważ przeciążanie konstrukcji umożliwia tworzenie obiektu określonej klasy na kilka sposobów, jest ono najczęściej stosowane w programach w języku Java w oparciu o wymagania programisty. Za pomocą przeciążania konstruktorów można inicjować obiekty z różnymi typami danych.

Weź pod uwagę, że obiekt z trzema zmiennymi instancji klasy jest traktowany jako przykład, w którym konkretna wartość ma być przypisana do drugiej zmiennej instancji, a pozostałym zmiennym mają być przypisane wartości domyślne. Można to osiągnąć przez deklarację wielu konstruktorów zgodnie z różnymi sygnaturami w klasie składowej.

Przeczytaj: Wyjaśnienie komponentów i architektury Java Career

Przykładowy kod implementacji przeciążania konstruktorów w Javie

Rozważmy program, w którym klasa Employee ma trzy konstruktory. Na podstawie przekazanych wartości każda z trzech jest wywoływana w celu zainicjowania obiektu.

Korzystanie z tego odnośnika w języku Java

Wszystkie metody instancji i konstruktory przyjmują niejawny parametr o nazwie „this”, który jest używany do odwoływania się do bieżącego obiektu. Bieżącym obiektem jest ten obiekt, na którym wywoływana jest metoda. Możemy użyć referencji 'this', aby odwołać się do bieżącego obiektu w dowolnym konstruktorze lub metodzie. Odwołanie „this” może być używane, podobnie jak inne odwołania do obiektów, w celu uzyskania dostępu do metod instancji, konstruktorów i zmiennych w treści metody lub konstruktora.

Kilka ważnych scenariuszy, w których używa się „tego” odniesienia, to:

  1. Gdy nazwy parametrów różnią się od nazw zmiennych instancji
  2. Kiedy referencja ma zostać przekazana do bieżącego obiektu, a parametr do innej metody
  3. Kiedy konstruktor ma być wywołany z innego konstruktora.

W tym przypadku argumenty odwołania this() muszą być zgodne z argumentami konstruktora docelowego. Funkcja this() musi być pierwszą instrukcją w konstruktorze. W szczególnych przypadkach, takich jak złożoność procedury inicjalizacji, funkcja ta może być wykorzystana do eliminacji duplikatów kodu w wielu konstruktorach.

Ucz się kursów rozwoju oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Korzyści z przeciążania konstruktorów w Javie

Kluczowe zalety korzystania z przeciążania konstruktorów podczas pisania programów w języku Java to:

  • Przeciążanie konstruktora umożliwia realizację statycznego polimorfizmu.
  • Instancje klas można inicjować na kilka sposobów z wykorzystaniem przeciążania konstruktorów.
  • Ułatwia proces definiowania wielu konstruktorów w klasie z unikalnymi sygnaturami.
  • Każdy przeciążony konstruktor wykonuje różne zadania w określonych celach.

Streszczenie

  • Przeciążanie konstruktorów w Javie odnosi się do użycia więcej niż jednego konstruktora w klasie instancji. Jednak każdy przeciążony konstruktor musi mieć różne sygnatury.
  • Aby kompilacja się powiodła, każdy konstruktor musi zawierać inną listę argumentów.
  • Lista parametrów zawiera sekwencję i typy argumentów wejściowych.
  • Dwa konstruktory w klasie z tą samą listą parametrów nie są możliwe w Javie.

Jeśli chcesz dowiedzieć się więcej o tworzeniu oprogramowania z pełnym stosem, sprawdź program Executive PG UpGrad i IIIT-B w tworzeniu oprogramowania – specjalizacja w tworzeniu pełnego stosu, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9+ projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Przygotuj się na karierę przyszłości

Złóż wniosek o program Executive PG w zakresie tworzenia oprogramowania przez IIIT-B