Zadanie
"OcenaPWr"
Zaprojektuj i oprogramuj klasę OcenaPWr pozwalającą w wygodny sposób
przechowywać i przetwarzać oceny,
w standardzie obowiązującym na PWr ( niezdefiniowana,
2.0/niedostateczny, 3.0/dostateczny, 3.5/plus dostateczny, . . . ,
5.5/celujący).
Definicja klasy OcenaPWr powinna uwzględniać następujące zagadnienia:
- wewnętrzna reprezentacja / kodowanie -> oceny reprezentowane liczbowo (2.0, 3.0, 3.5, ..., 5.0,
5.5)
lub tekstowo (niedostateczny,
dostateczny, ..., bardzo dobry, celujący)
+ reprezentacja wyróżnionego stanu "null" gdy ocena ma nieokreśloną
wartość
- hermetyzacja - ukrywanie/ochrona wewnętrznych danych obiektu (private,
protected, public),
- inicjalizacja - metody obsługujące operacje konstrukcji obiektu (konstruktor
bezparametrowy/parametrowy/kopiujący?)
- (opcjonalnie) problem destrukcji obiektów w języku Java.
Czy w klasy Javy mają destruktor?
Do czego służą metody finalize
oraz close?
(materiały pomocnicze: JavaWorld:
finalization and cleanup, finalize/
close in Java)
- setter/getter - metody
umożliwiające ustawianie lub odczyt wartości oceny
w postaci liczbowej (np. getValue) oraz tekstowej (np. getName)
- domyślna metoda toString
zwracająca opis zawartości obiektu
(materiały pomocnicze: JavaTpoint
toString method, JavaPractices
implementing toString)
- metody służące do porównywania obiektów Javy: equals, compareTo, compare
(materiały pomocnicze: Java
notes: Equality comparison )
Możliwe
rozszerzenia:
- obsługa innych systemów ocen
(np 1/2/3/4/5/6 lub A, B, C, ...,F)
+ hierarchia klas: bazowa Ocena i dziedziczące: OcenaPWr,
OcenaGimnazjum, ...
- obsługa różnych separatorów w liczbach rzeczywistych: 4.5 lub 4,5
(problem "parsowania" tekstów: Double.ParseDouble( ),
String.split( ) )