1 Programowanie Obiektowe w Javie (c.d.)Nguyen Hung Son Uniwersytet Warszawski
2 Tematy Klasy abstrakcyjne Interfejsy Pakiety Przegląd pakietów w JavieWprowadzenie do apletów
3 Klasy abstrakcyjne [extends NadKlasa] [implements Interfejsy] {abstract final public private Synchronizable ... SKŁADNIA KLAS [ModyfikatorKlasy] class NazwaKlasy [extends NadKlasa] [implements Interfejsy] { /* definicje metod i pól */ } Pola: Modyfikator TypWartości NazwaPola Metody: Modyfikator TypZwracanejWartości Nazwa (Typ Argument1, Typ Argument2, ...) { /* implementacja (kod) metody */ }
4 Klasy abstrakcyjne W klasie abstrakcyjnej mamy: Klasy abstrakcyjne W klasie abstrakcyjnej mamy: definicję niektórych metod (z modyfikatorem abstract) bez implementacji implementacje tych metod są w klasach potomnych nie możemy bezpośrednio stworzyć obiektów dla klas abstrakcyjnych
5 Klasy abstrakcyjne - przykładFigura abstract Punkt Odcinek Wielokąt Trójkąt Czworokąt
6 Klasy abstrakcyjne Figura[] tab = new Figura[3];Linia lin = new Linia(); Trojkat t = new Trojkat(); Wielokat w = new Czworokat(); ... tab[0] = lin; tab[1] = t; tab[2] = w; for(int i=0;i<3;i++){ tab[i].rysuj(); }
7 Interfejs Interfejs opisuje zbiór właściwości, które klasa musi implementować Interfejs może dziedziczyć z innych interfejsów, ale nie może dziedziczyć z klas ! [modyfikator] interface NazwaInterfejsu [extends listaInterfejsów] { . . . }
8 Interfejsy (c.d.) Wszystkie metody w interfejsie są publiczne i abstrakcyjne pola są publiczne, finalne i statyczne interface Kolekcja { int MAXIMUM = 200; void dodaj(Object obj); Object znajdz(Object obj); int liczbaObiektow(); }
9 Interfejs class Wektor implements Kolekcja{private Object obiekty[] = new Object[MAXIMUM]; private short m_sLicznik = 0; public void dodaj(Object obj) { obiekty[m_sLicznik++]=obj; } public int liczbaObiektow(){ return m_sLicznik;
10 Temat nr 3 public Object znajdz(Object obj) {for (int i = 0; i
11 Pakiety (Package) Pakiety w Javie to są podzbiory bibliotek, które mają podobne funkcje Pakiety mogą zawierać interfejsy Najważniejsze pakiety w Javie: java.lang.* java.util.* java.awt.*
12 Przykład package moje.graf; package moje.graf; public class Kwadrat.../moje/graf/Kwadrat.java .../moje/graf/Punkt.java package moje.graf; public class Kwadrat { ... } // ... ew. definicje innych klas niepublicznych package moje.graf; public class Punkt { // definicja pól danych i metod klasy Punkt }
13 Przykład import moje.graf; class Cos { Punkt p = Punkt();public static void main(String[] a) .... }
14 Przegląd Pakietów java.lang: Pakiet zawierający wszystkie podstawowe klasy Javy. Nie musi być jawnie importowany, ponieważ kompilator czyni to w sposób automatyczny. java.io: obsługi wejścia/wyjścia java.util: pomocnicze klasy użytkowe (np. generacja liczb losowych, operacje na ciągach znaków, kolekcje, ...)
15 Przegląd pakietów java.net: Zawiera klasy konieczne do tworzenia oprogramowania wykorzystującego sieć. Wraz z pakietem "java.io" umożliwia dostęp do sieci w celu ładowania lub wysyłania plików. java.awt: klasy służące do tworzenia graficznego interfejsu użytkownika (GUI). java.applet: Pakiet zawierający klasy używane podczas tworzenia appletów.
16 Przegląd pakietów Pakiet java.util.*
17
18 Aplety import java.applet.Applet; import java.awt.Graphics;import java.awt.Color; public class SimpleApplet extends Applet { ... }
19 Przykład apletu Plik HelloWorld.class (binarny kod)import java.applet.Applet; import java.awt.Graphics; public class HelloWorld extends Applet { public void paint(Graphics g) g.drawString("Hello world!", 50, 25); } Plik HelloWorld.class (binarny kod)
20 Klasa java.applet.Applet
21 Cykl życia apletu init - wywoływana tylko raz, gdy strona WWW zawierająca aplet zostanie po raz pierwszy "załadowana", jeśli opuścimy stronę WWW zawierającą aplet i wrócimy na nią, metoda init nie będzie wykonana ponownie, start - metoda jest wykonywana za każdym razem, gdy strona, na której znajduje się aplet, staje się stroną bieżącą w przeglądarce, stop - metoda ta jest wykonywana za każdym razem, gdy do przeglądarki ładowana jest następna strona WWW, destroy - wykonywana gdy aplet kończy swoje działanie.
22 Cykl życia apletu
23 Elementy pakietu awt