PGO Porównywanie obiektów Michail Mokkas
Spis treści Comparable Comparator Porządkowanie kolekcji Enum Iterator Kompozycja oraz Agregacja Zadania
Comparable Interfejs umożliwiający porównywanie obiektów klas, które go implementują. Interfejs ten ustala porządek liniowy dla tych obiektów. Klasa, która dziedziczy ten interfejs powinna implementować metodę: int compareTo(Object o) Przykład: litery w alfabecie cyfry w zbiorze liczb całkowitych
Comparable kont. 1 Wynik w konsoli: -1 1 0
Comparator Interfejs umożliwiający porównywanie obiektów klas, które nie muszą implementować żadnego dodatkowego interfejsu (np. Comparable). Klasa w obrębie, której odbywa się porównywanie musi dziedziczyć interfejs Comparator. Klasa ta powinna także posiadać implementację metody: int compare(Object o1, Object o2)
Comparator kont. 1 Wynik w konsoli: -1 1
Porządkowanie kolekcji Dla obiektów klas dziedziczących po interfejsie Comparable: Collections.sort(MyNumber_list); MyNumber_list - kontener obiektów typu MyNumber Dla obiektów innych klas musimy podać klasę odpowiedzialną za porównywanie tych obiektów (musi ona dziedziczyć po Comparator): Collections.sort(MyObject_list, new Main()); MyObject_list - kontener obiektów typu MyObject Main - klasa posiadająca metodę compare()
Enum Typ danych, który może przechowywać zbiór zdefiniowanych stałych wartości. Wynik w konsoli: MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY SATURDAY SUNDAY
Iterator Interfejs ten wykorzystywany jest w celu przechodzenia z obiektu na obiekt jakiejś kolekcji. Posiada on następujące metody: boolean hasNext() - sprawdza czy kolekcja ma kolejny element Object next() - zwraca kolejny element kolekcji void remove() - usuwa obecny element
Iterator kont. 1 Wynik w konsoli: A B D C [A, B, D]
Kompozycja oraz Agregacja Relacja całość-część Kompozycja: po usunięciu całości, wszystkie jej części także są usuwane. Agregacja: po usunięciu całości, części pozostają.
Agregacja w Javie
Zadanie 1 Stwórz program, który po otrzymaniu nazwy miesiąca w języku angielskim wypisze nazwę miesiąca w języku polskim. Skorzystaj z typu enum.
Zadanie 2 Stwórz klasę Word (reprezentującą jakieś słowo). Klasa ta powinna zawierać zmienną: String word Obiekty klasy Word powinny być porównywalne. Każdy ze znaków słowa odpowiada liczbie z zakresu 0-127 (ASCII). Porównaj po sumie liczb odpowiadającym znakom. Wykorzystaj interfejs Comparable.
Zadanie 3 Stwórz klasę Word (reprezentującą jakieś słowo). Klasa ta powinna zawierać zmienną: String word Obiekty klasy Word powinny być porównywalne. Każdy ze znaków słowa odpowiada liczbie z zakresu 0-127 (ASCII). Porównaj po sumie liczb odpowiadającym znakom. Wykorzystaj interfejs Comparator.
Zadanie 4 Stwórz klasy Book (reprezentującą książkę), Chapter (reprezentującą rozdział) oraz Image (reprezentującą Ilustrację). Książka powinna zawierać tytuł, autora, wydawnictwo, rok wydania oraz rozdziały. Rozdziały powinny zawierać tytuł oraz ilustracje. Ilustracja powinna zawierać opis. Skorzystaj z agregacji.