cwicz01 02







POJ 01-02




Budowanie klas
Polimorfizm: wstęp



Zadanie 1: Liczby wymierne


Zaprojektuj klasę RationalNumber
reprezentującą liczby wymierne jako pary liczb całkowitych (licznik i mianownik),
wraz z podstawowymi działaniami arytmetycznymi i porównaniem.


Klasa powinna zawierać odpowiednie konstruktory
(przynajmniej RationalNumber(int licznik, int mianownik)),
oraz publiczne metody implementujące operacje arytmetyczne.:




dodawanie: RationalNumber add(RationalNumber arg);


mnożenie: RationalNumber mul(RationalNumber arg);


odejmowanie: RationalNumber sub(RationalNumber arg);


dzielenie: RationalNumber div(RationalNumber arg);


równość: boolean equals(Object arg);



porównania:


boolean lessThan(RationalNumber arg)


boolean greaterThan(RationalNumber arg)


boolean lessThanOrEqual(RationalNumber arg)


boolean greaterThanOrEqual(RationalNumber arg)





tekstowa reprezentacja liczby: String toString();



Ostatnia metoda pozwoli wypisywać liczbę na konsoli za pomocą System.out.println(..) i nie tylko.

Ważne

Metody 1..4 powinny zwracać jako rezultat referencję do nowego obiektu klasy
RationalNumber, będącego wynikiem operacji wykonanej na argumencie arg i adresacie komunikatu.

Wskazówka

Przydatna będzie również prywatna metoda void reduce(), która uprości ułamek
(będący adresatem tego komunikatu).








Zadanie domowe 1: Liczby całkowite [2 p.]

W podobny sposób zaprojektuj klasę IntegerNumber reprezentującą liczby całkowite.
Uwaga: nie nazywaj tej klasy Integer ani Number ponieważ
takie klasy znajdują się w pakiecie java.lang, który jest domyślnie importowany
(a więc może powstać konflikt nazw).



Uwaga



W każdej klasie umieść metodę main(...) zawierającą testy
prezentujące działanie poszczególnych metod tych klas.


Powyższe klasy będą potrzebne na zajęciach w przyszłości.









Wyszukiwarka