1.Utwórz tablicę dynamiczną tab (ArrayList https://docs.oracle.com

Transkrypt

1.Utwórz tablicę dynamiczną tab (ArrayList https://docs.oracle.com
1.Utwórz tablicę dynamiczną tab (ArrayList https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html)
a następnie wypełnij ją pewną liczbą losowo stworzonych obiektów klasy Wymiar3D (Wymiary).
a) zwiększ o 10 szerokość wszystkich obiektów, które znajdują się w tablicy;
b) zaimplementuj w klasie Wymiar3D interfejs Comparable. Metoda compareTo ma porównywać
wysokość obiektów.
c) utwórz tablicę statyczną tabStat (wykorzystaj metodę toArray klasy ArrayList), która zawiera odwołania
do obiektów, które znajdują się w tablicy dynamicznej. Posortuj elementy tabStat rosnąco ze względu na
wysokość elementów. Wykorzystaj fakt, że klasa Wymiar3D implementuje interfejs Comparable.
d) posortuj (na co najmniej dwa sposoby) tablicę tab, wykorzystując metodę sort klasy ArrayList. W tym
celu utwórz klasy implementujące interfejs Comparator.
e) stwórz plik tekstowy „wymiary.txt”, w którym będą zapisane dane obiektów (z tablicy dynamicznej),
których suma wymiarów przekracza 100. Każda linia raportu ma odpowiadać jednemu obiektowi.
Wykorzystaj metodę toString klasy Wymiar3D. Ma ona zwracać łańcuch postaci np.
(s=20,w=60,dl=50).
f) w klasie Wymiar3D dodaj konstruktor, który tworzy obiekt na podstawie danego łańcucha w
określonym formacie (takim jaki zwraca metoda toString). Jeżeli format łańcucha jest nieodpowiedni, to
konstruktor ma zgłosić wyjątek IllegalArgumentException.
g) dodaj do tablicy dynamicznej wszystkie obiekty, które utworzysz na podstawie pliku wymiary.txt.
h) w pliku wymiary.txt zmodyfikuj kilka linii tak, aby nie można było na ich podstawie odtworzyć
obiektu. Powtórz podpunkt g) ale tym razem przechwyć wszystkie wyjątki zgłaszane przez konstruktor.
Wyświetl na ekranie numery nieprawidłowych wierszy pliku.
i) stwórz klasę Wymiar3DBeta, która rozszerza klasę Wymiar3D. W klasie Wymiar3DBeta przesłoń
metodę toString tak, aby zwracała łańcuch postaci „[x,y,z]”, gdzie x, y, z to odpowiednio szerokość,
wysokość i długość obiektu. Ponadto klasa Wymiar3DBeta ma mieć dodatkową metodę suma(), która
zwraca sumę składowych obiektu.
j) stwórz metodę statyczną w klasie Wymiar3DBeta, która generuje losowy obiekt.
k) dodaj do tablicy dynamicznej pewną ilość losowych obiektów klasy Wymiar3D i Wymiar3DBeta a
następnie:
1. sprawdź ile obiektów w tablicy, to obiekty klasy Wymiar3DBeta. Zakładamy, że nie mamy wiedzy
na temat zawartości tablicy.
2. sprawdź, dla ilu obiektów klasy Wymiar3DBeta, metoda suma() zwraca wartość mniejszą od 100.
Uwaga, musimy wykorzystać rzutowanie.
3. powtórz podpunkt h), zobacz jaki plik zostanie wygenerowany.
4. stwórz plik tekstowy „beta.txt”, w którym zostaną zapisane jedynie obiekty klasy Wymiar3DBeta.
Łańcuchy je reprezentujące mają być oddzielone średnikami.
5. wykorzystaj metodę split klasy String, aby na podstawie pliku „beta.txt” stworzyć tablicę statyczną
zawierającą obiekty klasy Wymiar3DBeta.

Podobne dokumenty