1. Język JAVA 1. Pierwszy program Napisać program, który: 1. wypisuje na ekran dowolny tekst. 2. Wypisuje argumenty podane w linii poleceń. 2. Kalkulator 1. Program wypisuje sumę liczb podanych jako parametr. 2. Program oblicza i wypisuje wartość wyrażenia postaci x L L, gdzie x to znak działania a L to liczba, np. + 2 5 albo / 4 2 3. Klasy Napisać klasę Student zawierającą 1. pola imię, nazwisko i wiek, 2. pole statyczne nazwaszkoły, 3. konstruktor bezargumentowy ustawiający domyślne wartości 4. konstruktor z trzema argumentami odpowiadającymi polom ustawia wartości pól 5. metodę int ilelat() zwracającą wiek, 6. nadpisaną metodę String tostring() zwracającą tekst informacyjny o studencie Napisać program wykorzystujący obiekty klasy student. W programie utworzyć kilka obiektów klasy Student. Zmienić wartości poszczególnych pól. Za każdy razem wypisywać informację o obiektach na ekran. 4. Dziedziczenie Utworzyć hierarchię klas zaczynającą się od klasy Figura oraz dwóch klas pochodnych: Koło i Prostokąt. Klasa Figura ma zwierać: 1. konstruktor 2. licznik wszystkich utworzonych obiektów tej klasy oraz numer utworzenia obiektu 3. metodę: double pole(), 4. String tostring() - zwracającą napis informacyjny o obiekcie np. wartości pól Klasa Koło (prosty potomek) ma zawierać: 1. konstruktor bezargumentowy 2. konstruktor o argumencie r (promień) 3. metody: double pole(), 4. String tostring() - zwracającą napis informacyjny o obiekcie np. wartości pól
Klasa Prostokąt ma zawierać: 1. konstruktor bezargumentowy 2. konstruktor o argumentach a, b (długości boków) 3. licznik wszystkich utworzonych obiektów tej klasy oraz numer utworzenia obiektu 4. metody: double pole(), 5. String tostring() - zwracającą napis informacyjny o obiekcie np. wartości pól Utworzyć referencje do obiektów typu figura przypisując im obiekty: f1 (Figura),f2 (Figura),f3 (Prostokąt), f4 (Koło), f5 (figura) po utworzeniu sprawdzić (wypisać na ekran) wartości pól licznik i nr. Utworzyć tablicę Figur skradającej się z następujących obiektów: 4 Koła, 3 Prostokąty, 1 Figura. Zsumować pola powierzchni figur w tablicy. 5. Klasa abstrakcyjna Utworzyć klasę abstrakcyjną AFigura zawierającą: 1. pole String nazwa 2. konstruktor bezargumentowy wypisujący nazwę 3. konstruktor z arg. nazwa, przypisujący arg. do pola 4. metody abstrakcyjne double pole(), double obwód() 5. metodę String tostring() - z info o obiekcie Utworzyć klasy pochodne Koło i Prostokąt dziedziczące z klasy AFigura Utworzyć obiekt kalsy AFigura. Utworzyć tablicę AFigur (4 Prostokąty 2 Koła) policzyć ich sumę pól. 6. Interfejsy 1. Napisać interfejs IFigura (podobny do AFigura) zawierającą (przynajmniej) jedną metodę polepowierzchni() oraz co najmniej jedną klasę implementującą ten interfejs. 2. Zaimplementować interfejs Comparable w klasie Koło (lub Figura). Metoda int compareto(object t) ma zwracać liczbę większą od zera jeżeli dla większego obiektu mniejszą dla mniejszego lub zero dla równego. 7. Szablony (typy generyczne) 1. Napisać klasę Para parametryzowaną dwoma typami (np. A i B), przechowującą parę obiektów dowolnego typu. Utworzyć kilka obiektów tej klasy oraz wypisać na standardowe wyjście zawartość tych obiektów. 8. Kolekcje 1. Używając klas ArrayList<V> stworzyć kolekcje Figur: Kół i Prostokątów. Posortować. Dodać nowy element. Jeszcze raz posortować, 2. Używając klasy: HashMap<K,V> stworzyć kolekcje Figur: Kół i Prostokątów przypisując im nazwy. Reszta jak w pkt. 1.
9. Okna (AWT) Za pomocą klas Frame z biblioteki AWT stworzyć jedno okienko. 10. Okna (Swing i Layout) 1. Używając klasy JFrame stworzyć jedno okienko. 2. Na okienku ułożyć 5 przycisków (JButton), wybranym układem (BorderLayout, BoxLayout, FlowLayout, GridLayout, GridBagLayout) 3. Do 3 przycisków podpiąć akcje (addactionlistener) poprzez: 1. klasę zewnętrzną z akcją: wypisującą tekst na ekran. ( i ew. zmieniającą kolor podanej kontrolki) 2. klasę wewnętrzną z akcją: zmiany koloru wybranego przycinku 3. klasę anonimową z akcją: zmiany tekstu na przycisku 11. Klasy zagnieżdżone // W poprzednim zadaniu wypróbować użycia klas i sprawdzić dostęp do różnych elementów klasy zewnętrznej: 1. zagnieżdżona statyczna 2. wewnątrz metody Sprawdzić jaki mają dostęp takie klasy do: 1. pola klasy 2. pola statycznego 3. pól oznaczonych jako private 4. pól innej klasy wewnętrznej Zagnieżdżona Wewnętrzna Deklaracja / definicja tak tak [public protected private] class {} tak nie static [public protected private] class {} tak tak new Object(){} //klasa anonimowa tak tak Wewnątrz metody lub konstruktora 12. Klasy wyjątkowe Napisać metodę wypisującą plik tekstowy na standardowe wyjście używając: 1. Klasy BufferedReader 2. Klasy Scanner 3. Klasy BufferedReader ze składnią try(){}catch(){} z Javy 8
Throwable Error Exception VirtualMachineError ThreadDeath RuntimeException IOException TimeoutException ClassCastException NullPointerException 13. Klasy wyjątkowe a dziedziczenie 1. Utworzyć dwie kalasy wyjątków dziedziczących po sobie w następujący sposób: Exception Wyjątek WyjątkowyWyjątek 2. Napisać klasę abstrakcyjną AbstrakcyjneWyjątki z dwoma metodami abstrakcyjnymi: 1. nazwa frujeden() rzuca wyjątek: Wyjątek 2. nazwa frudwa() rzuca: Wyjątek i MójWyjątek 3. Napisać klasę KWyjątek dziedziczącą po klasie AbstrakcyjneWyjątki oraz 1. w implementacji metody frujeden() ograniczyć liczbę rzucanych wyjątków, 2. w implementacji metody frudwa() zmienić rodzaj rzucanych wyjątków na WyjątkowyWyjątek 4. jw. z tym, że: 1. w implementacji metody frujeden() zwiększyć liczbę rzucanych wyjątków, (np. MójWyjątek, Wyjątek) 2. w implementacji metody frudwa() zmienić rodzaj rzucanych wyjątków na Exception 14. Producent-Konsument Producent (wątek) powinna produkować obiekty klasy Towar i przekazywać je do obiektu Magazyn. Konsument (wątek) powinna pozyskiwać obiekty klasy Towar z Magazynu i wypisywać zawartość towaru (nazwa lub nr itp.). 1. Klasa ZadanieProducenta implementuje interfejs Runnable 2. Klasa ZadanieKonsumenta implementuje interfejs Runnable 3. Klasa Magazyn przechowuje w polu towar (null puste miejsce,!null towar w magazynie). Dostęp do pola jest przez metody 1. przyjmij(towar t) - metoda musi kontrolować czy jest dostępne miejsce na towar oraz blokować wykonanie do momentu aż uda jej się wstawić towar na puste miejsce. 2. Towar wydajtowar() - metoda musi kontrolować czy jest dostępny towar oraz blokować wykonanie do momentu pojawienia się towaru. 15. Problem pięciu chińskich filozofów (dodatkowe) Przy okrągłym stole siedzi pięciu chińskich filozofów. Między nimi znajdują się pałeczki. Pałeczek jest tyle samo co filozofów. Na środku stołu stoi miska ryżu. Klasa Filozof (wątek) realizuje dwa stany: JEDZENIE i ROZMYŚLANIE. Aby filozof mógł przejść ze stanu JEDZENIE do stanu ROZMYŚLANIE musi pozyskać dwie pałeczki: prawą i lewą.
16. Enum Zdefiniować enum dla planet układu słonecznego, tak by każdy element znał masę i promień itp. dane Użyć enuma w argumencie metody wypisującej podane dane względem Ziemi. Planeta Średnia odległość od Słońca [mln km] Okres obiegu dookoła Słońca [lata zwrotnikowe] Średnica [km] Średnia gęstość [g/cm3] Okres obrotu dookoła osi [h lub d] Masa [kg] Markury 57,740 0,24085 4878 5,5 2111 h 0,33 1024 Wenus 108,141 0,61521 12104 5,27 243 d 4,9 1024 Ziemia 149,504 1,00004 12756 5,52 23,933 h 5,97 1024 Mars 227,798 1,88089 6860 3,85 24,617 h 0,64 1024 Jowisz 777,840 11,8622 143640 1,31 9,9 h 1900 1024 Saturn 1426,100 29,4577 120570 0,68 10,3 h 590 1024 Uran 2867,830 84,0153 57070 1,68 10,7 h 87 1024 Neptun 4493,650 164,788 49670 1,61 15,8 h 100 1024 17. Adnotacje Do zadania 14 dopisać adnotacje @Override, @Deprecated@NonNull, @SuppressWarnings Zadeklarować własną adnotacje.