Przeciążanie metod i konstruktory Drukuj
Ocena użytkowników: / 2
SłabyŚwietny 
Instrukcje dodatkowe - Programowanie w języku JAVA
Wpisany przez Administrator   

Z tej lekcji dowiesz się:

*co to jest przeciążanie metod;

*co to jest konstruktor

nauczysz się:

*wykorzystywać przeciążanie metod

*stosować konstruktory

 

 

 

 


 

Przypomnienie podstaw...

 

Aby zrozumieć poprzednią lekcję przypomnijmy sobie podstawy obiektowego programowania w Javie. W tym celu napiszmy prosty program:

Zadanie 1: Napisz program, który używa klas do przechowywania obiektów typu punkt o polach: x oraz y.

(na końcu instrukcji znajdują się rozwiązania)

Zadanie 2: Teraz, zgodnie z tym, czego uczyliśmy się na poprzedniej lekcji, dodajmy metodę do klasy, która ustawia wartość x na "10", oraz drugą metodę, która ustawia wartość y na "20".

 

 


 

Przeciążanie metod

 

Przypomnieliśmy sobie w jaki sposób używamy metod. Teraz nauczymy się co to jest przeciążanie metod. Odpowiedź jest krótka: jest to definiowanie dwóch lub więcej metod pod tą sama nazwą, ale z innymi argumentami (parametrami), Np.: dla metody ustawX przekazywaliśmy parametr typu integer (nowy_x). Teoretycznie możemy dodać drugą metodę, która jako argumentu użyje innych parametrów. Pokażę to na przykładzie:

Zadanie 3: Program, który przeciąża metodę ustaw_x używając jako argumentu innego obiektu.

Zastanówmy się, co stało się w programie:

utworzyliśmy w sumie 2 obiekty klasy punkt (linijki 20 oraz 23)

ustawiliśmy parametry obiektu punkt1 (linijki 21 i 22)

ustawiliśmy parametr x dla obiektu punkt2 używając przeciążonej metody ustawX

Zauważ, że w klasie punkt są 2 metody o nazwie ustawX: jedna jako argument przyjmuje liczbę całkowitą, druga przyjmuje obiekt klasy punkt, z którego "wyciąga" sobie wartość parametru. Tego typu zabiegi (przeciążanie metod) używane są bardzo często, ponieważ programista musi zapamiętać tylko jedna nazwę funkcji, za to jako parametr podaje to, co mu jest wygodnie w tym momencie użyć.

Ćwiczenie do utrwalenia:

Zadanie 3: Napisz program, który analogicznie jak w powyższym przypadku używa przeciążonej metody ustawY przyjmującej jako argument obiekt klasy punkt.

Zadanie 4: Zmodyfikuj powyższy program tak, aby za pomocą jednej metody można było ustawić obydwa parametry (x oraz y) korzystając z gotowych metod (ustawX oraz ustawY).

 

 

 


 

Konstruktory

Konstruktor jest to metoda, która tworzy nowy obiekt danej klasy. Domyślnie (jeśli nie zdefiniujemy inaczej), dla każdego pola klasy przy tworzeniu nowego obiektu ustawiane są wartości domyślne dla każdego z tych pól. Często jednak potrzebujemy tworzyć nowe obiekty danej klasy i to w taki sposób, aby "już na starcie" wartości tych pól były zdefiniowane. W tym celu użyjemy właśnie konstruktora.

Zadanie 5. Napisz program, który korzystając z konstruktora inicjuje nowe obiekty klasy punkt wartościami: x=20, y=30.

Ćwiczenie dla utrwalenie wiadomości:

Zadanie 6: Napisz program, który używa konstruktora do tworzenia nowych obiektów klasy punkt z tym, że użytkownik podaje wartości parametrów.

 

Konstruktory, podobnie jak każde inne metody można przeciążać, czyli może być np.: kilka konstruktorów, z których każdy przyjmuje inne argumenty. Programista, w zależności od tego, czym będzie dysponował, użyje odpowiedniego konstruktora.

Zadanie 7: Napisz program, który używa konstruktora (przeciążonego), który jako argument przyjmuje inny obiekt klasy punkt i tworzy nowy obiekt, który jest kopią tego, który jest argumentem.

 


 

Rozwiązania zadań

Zadanie1:

Zadanie 2: