Programowanie w Javie 1 Wykład i Ćwiczenia 2 Przegląd podstawowych klas w Javie (elementy programowania obiektowego) Płock, 16 października 2013 r.
Czym jest obiekt w programowaniu obiektowym? Programowanie obiektowe jak sama nazwa wskazuje posługuje się obiektami. Obiekty charakteryzują się: atrybutami (cechami, stanami, pola), operacjami, które można na nich wykonać (usługami, poleceniami, metodami). Na przykład jeśli obiektem jest samochód to atrybutami mogą być: ciężar, długość, aktualna prędkość jazdy. Natomiast, operacjami jakie można wykonywać na tym obiekcie mogą być: zatrzymaj się, ruszaj, skręć w prawo, zwiększ prędkość. 2
Czym jest klasa w programowaniu obiektowym? Informację o atrybutach danego obiektu oraz o operacjach które można na nim wykonać czerpiemy z definicji klasy odpowiadającej danemu obiektowi. Taką klasę samochodów nasz program musi albo skądś pobrać albo sam dostarczyć. Klasa - to zestaw atrybutów i operacji grupy podobnych obiektów, które są dla nich niezmienne. 3
Klasa Samochod w Javie public class Samochod { int ciezar; int dlugosc; int aktualnapredkoscjazdy; public int getciezar() { return ciezar; public void setciezar(int ciezar) { this.ciezar = ciezar; public int getdlugosc() { return dlugosc; public void setdlugosc(int dlugosc) { this.dlugosc = dlugosc; public int getaktualnapredkoscjazdy() { return aktualnapredkoscjazdy; public void setaktualnapredkoscjazdy(int aktualnapredkoscjazdy) { this.aktualnapredkoscjazdy = aktualnapredkoscjazdy; 4
Tworzenie nowej klasy w Javie, konstruktor new Samochod(); lub Samochod sm = new Samochod(); Stworzenie konstruktora klasy: public Samochod(int ciezarn, int dlugoscn, int aktualnapredkoscjazdyn) { ciezar = ciezarn; dlugosc = dlugoscn; aktualnapredkoscjazdy = aktualnapredkoscjazdyn; 5
Private i destruktory Pola w klasie powinny być prywatne aby dostęp do nich mógł być uzyskany tylko przez publiczne metody (wtedy nie można zbyt dużo manipulować na stanie obiektu). Prawidłowo zatem powinno być: private int ciezar; private int dlugosc; private int aktualnapredkoscjazdy; W Javie nie ma destruktorów. Jest za to mechanizm Garbage Collector. Ćwiczenie 1 Stwórz nowy projekt w NetBeans i klasę Samochod.java z polami i metodami opisanymi powyżej. Stwórz dwa obiekty tej klasy sam1 i sam2 i ustaw im początkowe wartości na dowolne liczby nieujemne (aktualna prędkość ma być liczbą z przedziału [0,100]). Następnie w klasie testującej napisz metodę która będzie o jeden zwiększała aktualną prędkość obu pojazdów chyba, aż prędkość któregoś z nich przekroczy 150. Wówczas metoda ma zwrócić wartość -1. 6
Czytanie z klawiatury (1) Klasa Scanner jest najprostszym sposobem wczytania tekstu z klawiatury w Javie. Ustawiamy Scanner na czytanie standardowego wejścia: Scanner input = new Scanner(System.in); Wczytujemy linię tekstu: String text = input.nextline(); Ćwiczenie 2 Napisz program w którym wczytujesz trzy parametry: par1, par2 i par3 (każdy do oddzielnej zmiennej) i wypisujesz na ekran: Witaj par1. Twoje nazwisko to par2. Za 10 lat skończysz (par4+10) lat. Obsłuż ewentualne błędy parsowania stringa na inta. 7
Czytanie z klawiatury (2) Ćwiczenie 3 Napisz program w którym wczytujesz linię tekstu (wyrazy oddzielone spacją) i przypisujesz każdemu wyrazowi parametr par1, par2 i par3. Wypisujemy teraz na ekran: Witaj par1. Twoje nazwisko to par2. Za 10 lat skończysz (par4+10) lat. Obsłuż ewentualne błędy parsowania stringa na inta. Zakładamy, że program działa poprawnie jeśli linia tekstu składa się dokładnie z trzech wyrazów oddzielonych spacją. W przeciwnym przypadku program ma zadziałać ale ma zgłosić odpowiedni komunikat błędu. Wsk. Skorzystaj z funkcji split() 8
Czytanie z klawiatury (3) Ćwiczenie 4 Napisz program, który czyta tekst linia po linii (zakładamy że w każdej linii jest jeden wyraz bez spacji) i wypisuje tylko pierwszą i ostatnią literę wczytanego wyrazu. Program kończy działanie tylko wtedy jeśli: 1) Wpiszemy wyraz koniec. 2) Wpiszemy wyraz koniec lub KONIEC. 3) Wpiszemy wyraz koniec bez względu na wielkość lier w nim występujących. Zmodyfikuj program aby pozbywał się na początku i końcu wczytywanego wyrazu spacji. Wsk. Skorzystaj z funkcji touppercase() i trim(). 9
Klasa JOptionPane Klasa JOptionPane pozwala w prosty sposób tworzyć i wykorzystywać okienka dialogowe w Javie. Przydatne metody tej klasy to: showinputdialog pozwala wczytać tekst z klawiatury showmessagedialog pozwala wypisać tekst na ekran Ćwiczenie 5 Przerób program z Ćwiczenia 2 za pomocą okienek dialogowych. 10
Klasa String Ćwiczenie 6 Napisz program w którym wczytujesz linię tekstu postaci: dd.mm.rrrr Z ewentualnymi spacjami na początku i końcu tekstu. 1. Sprawdź czy teksty: dd, mm i rrrr poprawnie konwertują się na liczby całkowite. 2. Sprawdź, czy wczytany tekst jest prawie poprawną datą: dzień, miesiąc i rok. Zakładamy na razie, że dd ma być liczbą ze zbioru {1,2,,30, mm ma być liczbą ze zbioru {1,2,,12 i rrrr ma być liczbą ze zbioru {1,2,3,.,2013. 3. Sprawdź,czy wczytany tekst jest poprawną datą: dzień, miesiąc i rok. Zakładamy na razie, że luty ma 28 dni. 4. Sprawdź, czy wczytany tekst jest poprawną datą: dzień, miesiąc i rok z uzwglednieniem roku przestępnego. 11
Praca domowa (na ocenę) Stwórz kalkulator dwuargumentowy obsługujący działania: +, -, *, /, \sqrt[n]{m i m^n pozwalający obliczać wynik działania: dodawanie, odejmowanie, mnożenie, dzielenie, pierwiastkowanie (dowolnego stopnia n), potęgowanie. 1. Skorzystaj z okienek dialogowych JOptionPane 2. Wykorzystaj konstrukcję switch i case 3. Obsłuż odpowiednie błędy 12