Programowanie Obiektowe w Javie(cd)

advertisement
Programowanie Obiektowe w
Javie (c.d.)
Nguyen Hung Son
Uniwersytet Warszawski
Tematy
Klasy abstrakcyjne
 Interfejsy
 Pakiety
 Przegląd pakietów w Javie
 Wprowadzenie do apletów

Klasy abstrakcyjne
SKŁADNIA KLAS
[ModyfikatorKlasy] class NazwaKlasy
[extends NadKlasa] [implements Interfejsy]
{
/* definicje metod i pól */
}
abstract
final
public
private
Synchronizable
...
Pola:
Modyfikator TypWartości NazwaPola
Metody:
Modyfikator TypZwracanejWartości Nazwa
(Typ Argument1, Typ Argument2, ...)
{
/* implementacja (kod) metody */
}
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

Klasy abstrakcyjne - przykład
Figura
Punkt
Odcinek
Trójkąt
abstract
Wielokąt
Czworokąt
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();
}
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]
{
...
}
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();
}
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;
}
.......
}
Temat nr 3
public Object znajdz(Object obj) {
for (int i = 0; i<m_sLicznik;i++)
{
if (obiekty[i].getClass() == obj.getClass())
{
System.out.println("Znaleziono obiekt klasy "
+ obj.getClass() );
return obiekty[i];
}
}
return null;
}
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.*
Przykład
.../moje/graf/Kwadrat.java
.../moje/graf/Punkt.java
package moje.graf;
public class Kwadrat
{
...
}
package moje.graf;
// ... ew. definicje innych
klas niepublicznych
public class Punkt
{
// definicja pól danych i
metod klasy Punkt
}
Przykład
import moje.graf;
class Cos
{
Punkt p = Punkt();
public static void main(String[] a)
{
....
}
}
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, ...)
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.
Przegląd pakietów
Pakiet java.util.*
Aplety
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class SimpleApplet extends Applet
{
...
}
Przykład apletu
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)
<HTML><HEAD><TITLE> Przykładowy aplet </TITLE></HEAD>
<BODY>
Tutaj jest wynik działania apletu:
<APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25></APPLET>
</BODY>
</HTML>
Klasa java.applet.Applet
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.
Cykl życia apletu
Elementy pakietu awt
Download