Metoda konstruktora Java
Utwórz obiekt za pomocą konstruktora Java
Emilia Manevska / Getty Images
Konstruktor Java tworzy nową instancję już zdefiniowanego obiektu. W tym artykule omówiono, jak używać metod konstruktora Java do tworzenia obiektu Person.
Notatka: W tym przykładzie musisz utworzyć dwa pliki w tym samym folderze: Osoba.java definiuje klasę Person, a OsobaPrzykład.java zawiera główna metoda który tworzy obiekty Person.
Metoda Konstruktora
Zacznijmy od utworzenia klasy Person, która ma cztery pola prywatne: imię, nazwisko, adres i nazwę użytkownika. Pola te są zmiennymi prywatnymi i razem ich wartości tworzą stan obiektu. Dodaliśmy również najprostsze metody konstruktorów:
|_+_||_+_|Metoda konstruktora jest podobna do każdej innej metody publicznej, z wyjątkiem tego, że ma taką samą nazwę jak klasa i nie może zwrócić wartości. Może nie mieć jednego lub wielu parametrów.
Obecnie nasza metoda konstruktora w ogóle nic nie robi i jest to dobry moment, aby zastanowić się, co to oznacza dla początkowego stanu obiektu Person. Jeśli zostawiliśmy rzeczy takimi, jakie są lub nie umieściliśmy metody konstruktora w naszej klasie Person (in Jawa możesz zdefiniować klasę bez niej), wtedy pola nie miałyby wartości — a na pewno chcemy, aby nasza osoba miała imię i adres oraz inne cechy. Jeśli uważasz, że istnieje szansa, że Twój obiekt może nie być używany zgodnie z oczekiwaniami, a pola mogą nie zostać zainicjowane podczas tworzenia obiektu, zawsze zdefiniuj je z wartością domyślną:
|_+_||_+_|Normalnie, aby upewnić się, że metoda konstruktora jest użyteczna, projektujemy ją tak, aby oczekiwała parametrów. Wartości przekazywane przez te parametry mogą być użyte do ustawienia wartości pól prywatnych:
|_+_||_+_|Nasza metoda konstruktora oczekuje teraz, że zostaną do niej przekazane wartości czterech ciągów. Służą one następnie do ustawienia początkowego stanu obiektu. Dodaliśmy również nową metodę o nazwie wyświetlSzczegóły Osoby() aby umożliwić nam zobaczenie stanu obiektu po jego utworzeniu.
Wywołanie metody konstruktora
W przeciwieństwie do innych metod obiektu, metodę konstruktora należy wywołać za pomocą słowa kluczowego „new”:
|_+_||_+_|
Oto, co zrobiliśmy:
- Aby utworzyć nową instancję obiektu Person, najpierw definiujemy zmienną typu Person, która będzie przechowywać obiekt. W tym przykładzie nazwaliśmy to Dave .
- Po drugiej stronie znaku równości wywołujemy metodę konstruktora naszej klasy Person i przekazujemy jej cztery wartości łańcuchowe. Nasza metoda konstruktora przyjmie te cztery wartości i ustawi początkowy stan obiektu Person na: firstName = 'Dave', lastName = 'Davidson', address = '12 Main St', username = 'DDavidson'.
Zwróć uwagę, jak przeszliśmy do głównej klasy Java, aby wywołać obiekt Person. Kiedy pracujesz z obiektami, programy będą się rozciągać wiele plików .java . Upewnij się, że zapisałeś je w tym samym folderze. Aby skompilować i uruchomić program, po prostu skompiluj i uruchom Java główna klasa plik (tj. OsobaPrzykład.java ). Kompilator Java jest na tyle sprytny, że zdaje sobie sprawę, że chcesz skompilować Osoba.java pliku, ponieważ widzi, że użyłeś go w klasie PersonExample.
Nazewnictwo parametrów
Kompilator Javy pomyli się, jeśli parametry metody konstruktora mają takie same nazwy jak pola prywatne. W tym przykładzie widać, że rozróżniliśmy je, poprzedzając parametry słowem „osoba”. Warto wspomnieć, że jest inny sposób. Zamiast tego możemy użyć słowa kluczowego „this”:
|_+_||_+_|Słowo kluczowe „this” informuje kompilator Java, że zmienna, do której ma zostać przypisana wartość, jest tą zdefiniowaną przez klasę, a nie parametr. To kwestia stylu programowania, ale ta metoda pomaga nam zdefiniować parametry konstruktora bez konieczności używania wielu nazw.
Więcej niż jedna metoda konstruktora
Projektując klasy obiektów, nie ograniczasz się do używania tylko jednej metody konstruktora. Możesz zdecydować, że istnieje kilka sposobów inicjalizacji obiektu. Jedynym ograniczeniem korzystania z więcej niż jednej metody konstruktora jest to, że parametry muszą się różnić.
Wyobraź sobie, że w momencie tworzenia obiektu Person możemy nie znać nazwy użytkownika. Dodajmy nową metodę konstruktora, która ustawia stan obiektu Person przy użyciu tylko imienia, nazwiska i adresu:
|_+_||_+_|
Zauważ, że druga metoda konstruktora jest również nazywana „Person” i również nie zwraca wartości. Jedyną różnicą między nim a pierwszą metodą konstruktora są parametry – tym razem oczekuje tylko trzy wartości ciągu: imię, nazwisko i adres.
Możemy teraz tworzyć obiekty Person na dwa różne sposoby:
|_+_||_+_|Osoba Dave zostanie utworzony z imieniem, nazwiskiem, adresem i nazwą użytkownika. Osoba Jim, jednak nie otrzyma nazwy użytkownika, tj. nazwa użytkownika będzie pustym ciągiem: nazwa użytkownika = ''.
Szybkie podsumowanie
Metody konstruktorów są wywoływane tylko wtedy, gdy tworzone jest nowe wystąpienie obiektu. Oni:
- Musi mieć taką samą nazwę jak klasa
- Nie zwracaj wartości
- Nie może mieć żadnego, jednego lub wiele parametrów
- Może numerować więcej niż jeden, o ile każda metoda konstruktora ma inny zestaw parametrów
- Może mieć nazwy parametrów tak samo jak pola prywatne, o ile używane jest słowo kluczowe „this”
- Są wywoływane za pomocą słowa kluczowego „nowe”