Zaprojektuj i zaimplementuj trzy klasy, które na zajęciach 11 posłużą jako klasy bazowe. Klasy reprezentują pojęcia:
- samochód – zawiera pola przechowujące cechy wspólne dla wszystkich samochodów (cena, rodzaj silnika).
- urządzenie optyczne – zawiera pola przechowujące cechy wspólne dla wszystkich takich urządzeń (zoom, waga).
- osoba na uczelni – zawiera pola przechowujące cechy wspólne dla wszystkich takich osób (imię i nazwisko, adres e-mail).
Wszystkie pola klasy bazowej powinny być zadeklarowane jako public
. Mimo to, dla każdego z pól powinny istnieć odpowiednie getery i setery, aby na zajęciach laboratoryjnych prawa dostępu do tych pól mogły być zmieniane na bardziej ograniczające. Ponadto każda klasa musi mieć metodę wypisz
, która wypisze w oknie konsoli wartości wszystkich pól obiektu w sposób graficznie przystępny dla użytkownika.
Do wszystkich klas zaprojektuj po trzy konstruktory: konstruktor domyślny inicjalizujący wszystkie pola obiektu rozsądnymi wartościami domyślnymi, konstruktor kopiujący oraz konstruktor z argumentami przechowującymi wartości dla inicjalizacji wszystkich pól.
Dodatkowo każda klasa bazowa powinna mieć jeszcze pole nast
, zadeklarowane jako public
i zawierające wskaźnik typu takiego jak klasa bazowa. Tym sposobem obiekty klasy bazowej będą mogły być wykorzystane jako elementy listy dynamicznej jednokierunkowej.
Zademonstruj poprawność działania zaprojektowanych klas, pisząc w funkcji main
kod, budujący dla każdego z typów danych listę dynamiczną jednokierunkową zawierającą 5 elementów. Do tworzenia elementów listy użyj konstruktorów domyślnych. Po utworzeniu każdej z list wywołaj metodę wypisz
na rzecz każdego z elementów listy. Na koniec usuń wszystkie listy.
Przetestowany, działający program (tylko plik z kodem źródłowym) uploaduj do https://e.uksw.edu.pl jako rozwiązanie zadania „Wejściówka” w sekcji „Temat 11”.