Zad.28. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( ) ; public void pisz ( ) ; Zad.29. Utwórz klasę, która implementuje oba interfejsy: public void pisz ( int l i c z b a ) ; public void pisz ( f l o a t liczba ); Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy? public void pisz ( ) ; public int pisz (); 29 / 34
Zad.31. Utwórz klasę, która implementuje interfejs C: public void f ( ) ; public void g ( ) ; p u b l i c i n t e r f a c e C extends A, B { public void h ( ) ; Zad.32. Oceń poprawność dziedziczenia interfejsów public int f (); public float f (); p u b l i c i n t e r f a c e C extends A, B { public void h ( ) ; 30 / 34
Wyjątki Otwórz stronę https://docs.oracle.com/javase/8/docs/api/index.html. Znajdź pakiet java.lang. i zapoznaj się z różnymi wyjątkami w Exception Summary. Zad.33. Popraw poniższy kod, przechwytując pojawiający się tam wyjątek i wypisując odpowiedni komunikat. public class Tablica { i n t t a b [ ] = new i n t [ 1 0 ] ; tab [ 1 0 ] = 5; System. o u t. p r i n t l n ( " D z i e s i a t y e l e m e n t t a b l i c y ma w a r t o s c : " + t a b [ 1 0 ] ) ; public class Tablica2 { p r i v a t e i n t [ ] t a b l i c a = new i n t [ 1 0 ] ; public int pobierzelement ( int indeks ) { return tablica [ indeks ] ; p u b l i c void ustawelement ( i n t indeks, i n t wartosc ) { t a b l i c a [ indeks ] = wartosc ; p u b l i c c l a s s Main { T a b l i c a 2 t a b l i c a = new T a b l i c a 2 ( ) ; t a b l i c a. ustawelement ( 5, 1 0 ) ; int l i c z b a = t a b l i c a. pobierzelement (10); System. o u t. p r i n t l n ( l i c z b a ) ; 31 / 34
Zad.34. Spróbuj skompilować poniższy program. Zaobserwuj komunikat kompilatora i popraw kod. public class Hierarchia { try { i n t l i c z b a = 10/0; catch ( RuntimeException blad ) { System. o u t. p r i n t l n ( " W y s t a p i l b l a d : " + b l a d ) ; catch ( ArithmeticException blad ) { System. o u t. p r i n t l n ( " W y s t a p i l b l a d : " + b l a d ) ; 32 / 34
Zad.35. Skompiluj poniższy program. Zmodyfikuj kod w taki sposób, aby zgłoszone zostały oba typy błędów: ArithmeticException oraz NullPointerException. p u b l i c c l a s s Punkt { int x, y ; p u b l i c c l a s s DwaWyjatki { Punkt p u n k t = n u l l ; int liczba = 0; try { l i c z b a = 10/0; punkt. x = l i c z b a ; catch ( ArithmeticException blad ) { System. o u t. p r i n t l n ( " N i e p r a w i d l o w a o p e r a c j a a r y t m e t y c z n a " ) ; System. o u t. p r i n t l n ( b l a d ) ; catch ( RuntimeException blad ) { System. o u t. p r i n t l n ( " B l a d o g o l n y " ) ; System. o u t. p r i n t l n ( b l a d ) ; 33 / 34
Zad.36. Utwórz klasę z metodą main, która zgłasza obiekt klasy Exception wewnątrz bloku try. Przekaż parametr tekstowy konstruktorowi Exception. Przechwyć wyjątek wewnątrz sekcji catch i za pomocą metody getmessage() wypisz przekazany tekst. Zad.37. Utwórz własną klasę wyjątków. Napisz dla tej klasy konstruktor przyjmujący parametr typu String i zapamiętujący ten parametr wewnątrz obiektu. Napisz metodę wyświetlającą ten łańcuch. Utwórz blok try-catch i wypróbuj ten wyjątek. Zad.38. Napisz klasę z metodą, która zgłasza wyjątek stworzony w poprzednim zadaniu. Spróbuj ją skompilować bez specyfikacji wyjątku. Zaobserwuj komunikaty kompilatora. Dodaj odpowiednią specyfikację wyjątku. Wypróbuj swoją klasę i jej wyjątki wewnątrz bloku try-catch. Zad.39. Napisz klasę wyjątku o nazwie Ujemna oraz klasę Pierwiastek, która będzie z niego korzystać. W klasie Piewiastek napisz metodę oblicz(), która generuje losowo dwie liczby i oblicza pierwiastek z ich różnicy. W przypadku, gdyby wynik odejmowania był ujemny, powinien zostać zgłoszony wyjątek Ujemna. Przetestuj działanie metody w main. 34 / 34