Zpo-10-wyk-Slajd10
Przykład(1)
Przekształcenie polega na zaimplementowaniu dwóch metod: equals () oraz hashCode (). Metoda equals () przyjmuje jako argument obiekt klasy Object i traktuje go jak inny obiekt własnej klasy (w tym przypadku będzie to DziałKatalogu). Porównanie własnego obiektu z obiektem przekazanym jako argument może być zrealizowane np. poprzez porównanie prefiksów opisujących działu książek, które są jedynym polem w tej klasie. Metoda hashCode () jest zaimplementowana podobnie – poprzez delegację do identycznej metody w obiekcie prefiksu.
Ostatnim krokiem jest zmiana kwalifikatora dostępu do konstruktora na public.
Warto pamiętać, że otrzymany obiekt-wartość nie może być już porównywany za pomocą operatora porównania, dlatego wyrażenia dotyczące porównania powinny również zostać dostosowane do tej zasady. Przedstawione dwa przypadki testowe pokazują ideę tego przekształcenia: porównanie za pomocą metody equals () nadal jest poprawne, natomiast za pomocą operatora == już nie.