Zacznijmy od tego co napisaliśmy w trakcie poprzedniego rozdziału. Wspomnieliśmy tam, że domyślnie każda klasa posiada konstruktor bezparametrowy.
Krótko mówiąc, jeśli tworzymy klasę
Item to dwa poniższe zapisy są tożsame.
W obu przypadkach klasa posiada konstruktor bezparametrowy. Po lewej stronie konstruktor ten jest dodawany przez Javę niejawnie (nie widzimy go w kodzie).
Natomiast po prawej stronie dodajemy konstruktor włąsnoręcznie i tak naprawdę w takiej sytuacji jest to nadmiarowe. Pamiętamjmy jednak, że konstruktor bezparametrowy
jest dodawany niejawnie tylko wtedy, gdy nie stworzyliśmy innego konstruktora (z parametrami).
Nowy obiekt - konstruktor bez parametrów
W przypadku gdy klasa posiada tylko konstruktor bezparametrowy, nowy obiekt tworzymy według schematu:
Przeanalizujmy teraz kod, zgodnie z tym jak go piszemy. Idziemy więc od lewej strony i piszemy po kolei:
- Nazwę klasy, której obiekt chcemy utworzyć.
- Nazwę nowego obiektu.
- Operator przypisania =
- Operację tworzenia obiektu za pomocą słowa kluczowego new użytego w stosunku do nazwy klasy.
- Nazwę klasy (ponownie), której obiekt chcemy utworzyć.
Zobaczmy teraz jak to będzie wyglądało, gdy stworzymy obiekt na bazie realnej klasy
Item:
Nowy obiekt - konstruktor z jednym parametrem
Przyjrzyjmy się teraz wszystkiemu jeszcze raz, ale tym razem używając konstruktora z jednym parametrem. Mamy zatem klasę:
Nowy obiekt tworzymy według schematu:
Ponownie przeanalizujmy kod idąc od lewej strony. Piszemy po kolei:
- Nazwę klasy, której obiekt chcemy utworzyć.
- Nazwę nowego obiektu. Na ten moment mamy pusty obiekt. Nie jest on zainicjowany żadnymi danymi.
- Operator przypisania =
- Operację tworzenia obiektu za pomocą słowa kluczowego new użytego w stosunku do nazwy klasy wraz z parametrem przekazywanym w nawiasie.
- Nazwę klasy (ponownie), której obiekt chcemy utworzyć.
Jedyną różnicą jest to, że podczas tworzenia obiektu wywołujemy konstruktor z parametrem zamiast bezparametrowego.
Utwórzmy przykładowy, nowy obiekt klasy
Item, którego konstruktor będzie przyjmował tylko jeden parametr (
id) o wartości 5:
Nowy obiekt - konstruktor z wieloma parametrami
Różnica pomiędzy konstruktorem z jednym parametrem, a tym z wieloma parametrami, polega jedynie na ilości przekazywanych do takiego konstruktora wartości.
Przejdźmy więc teraz do miejsca, w którym skończyliśmy poprzedni rozdział i zobaczmy jak można stworzyć obiekt używając konstruktora z wieloma parametrami.
No dobrze kod wygląda znajomo, ale skąd ta klasa
Category?
Jest to kolejna klasa (oprócz klasy
Item), którą tworzymy w ramach projektu, tak aby w przyszłości można było określić do jakiej kategorii należy nasz item.
Dla uproszczenia niech będzie ona zawierała tylko dwa pola: id i nazwę:
Oczywiście ponownie użyjemy słowa kluczowego
new i wykonamy dokładnie takie kroki jak poprzednio. Zmieni się jedynie liczba parametrów:
Jak widać do konstruktora obiektu przekazujemy wartość liczbową, obiekt tekstowy oraz obiekt klasy
Category (wszystko zgodnie z typami parametrów zdefiniowanych w konstruktorze).
Dołożymy ten kawałek kodu jako
nową linię do naszego programu startowego.
Dzięki temu, podczas wykonywania programu zostanie stworzony obiekt
item, a w jego polach będą przechowywane dane
przekazane do obiektu w postaci konstruktora. Nasz obiekt stał się więc
kontenerem na dane!
Teraz odnosząc się do nazwy tego obiektu w innej linii programu możemy uruchomić metodę
getName zdefiniowaną w klasie
Item (szerzej o metodach
piszemy w rozdziale
Klasy i programowanie obiektowe
oraz
Rodzaje metod w ramach obiektu).
Zwróci nam ona wartość zapisaną w polu
name i tą wartość wydrukujemy na konsoli.
Taki program najpierw wypisze nam na konsoli tekst "Hello JavAPPa", a potem "Appa Item 1" i to jest dokładnie to co chcieliśmy uzyskać.
Autor: Jarek Klimas
Data: 03 stycznia 2024
Labele: Backend, Podstawowy, Java
Czy informacje, które otrzymałeś, były pomocne?
Jeśli tak, zapraszam Cię do podarowania mi kawy.
Masz pytanie dotyczące prezentowanego materiału?
Coś jest dla Ciebie niejasne i Twoje wątpliwości przeszkadzają Ci w pełnym zrozumieniu treści?
Napisz do nas maila, a my chętnie znajdziemy odpowiednie rozwiązanie.
Najciekawsze pytania wraz z odpowiedziami będziemy publikować pod rozdziałem.
Nie czekaj. Naucz się programować jeszcze lepiej.