Multimedia

Transkrypt

Multimedia
Multimedia
JAVA
mgr inż. Piotr Odya
[email protected]
Historia
„
„
„
„
1990 –rozpoczęcie prac nad nowym
systemem operacyjnym w firmie SUN, do
jego tworzenia postanowiono wykorzystać
nowy język programowania oparty na bazie
C++ -OAK
1992 –poszukiwanie zastosowań dla
tworzonego z wykorzystaniem nowego języka
oprogramowania
1994 –wstrzymanie prac nad rozwojem
1995 –pierwsza publiczna prezentacja języka
JAVA
1
Właściwości Javy
„
„
„
„
obiektowo zorientowany język
programowania (zawiera takie
mechanizmy jak klasy, obiekty,
dziedziczenie)
umożliwia tworzenie bardzo
zaawansowanych aplikacji
jest niezależny od platformy
pozwala na obsługę wielu wątków
Właściwości Javy
„
„
„
podczas uruchamiania aplikacji
następuje sprawdzenie poprawności jej
kodu
tworzona aplikacja nie ma żadnego
dostępu do zasobów systemowych
lokalnego komputera
zarządzanie pamięcią odbywa się w
sposób automatyczny
2
Program w Javie
„
„
program tworzony w Javie jest
kompilowany na tzw. B-kod (bytecode),
który dopiero jest interpretowany przez
Wirtualną Maszyne Javy pracującą na
określonej platformie
program napisany w Javie, który może
być dołączony do strony WWW określa
się mianem apletu
Typy zmiennych
„
„
podobne jak w języku C, ale bez
możliwości wykorzystywania
wskaźników, np.: boolean, char, int,
long
pola danych (tablice) są definiowane
tylko w sposób dynamiczny, np.:
int tablica [] = new int [100]
3
Klasy
„
„
„
„
zastępują struktury danych typu rekordy czy
struktury
definicja klasy określa jej budowę i
zachowanie
obiekt danej klasy powstaje dopiero, gdy na
podstawie definicji klasy deklarowana jest
zmienna
odwoływanie metod danej klasy do pól
danych i metod innej klasy możliwe tylko po
określonym zdefiniowaniu klasy
Modyfikatory klas
„
„
„
„
„
abstract –zawiera tylko metody bez
implemetacji, stanowi szablon dla innych klas
(dziedziczenie)
final –nie można od niej tworzyć klas
pochodnych
public –jest udostępniana na zewnątrz
pakietu, w którym się znajduje, w jednym
pliku może wystąpić tylko jedna taka klasa
private –dostępna wyłącznie wewnątrz
danego pakietu
synchronizable –używana przy wielu wątkach
4
Modyfikatory metod (i pól)
„
„
„
„
„
public –taka metoda może być wywołana z
zewnątrz
private –dostęp do metody posiadają jedynie
metody tej samej klasy
protected –dana metoda może być
wykorzystywana przez metody swojej klasy i
wszystkich klas pochodnych
static –dla jej wywołania nie jest konieczne
istnienie żadnego obiektu
native –służy do oznaczenia danej metody
jako działającej na określonej platformie
Struktura klasy
modyfikator_klasy class NazwaKlasy
{
modyfikator_pola typ_zmiennej nazwa_zmiennej
[...]
modyfikator_pola typ_zmiennej nazwa_zmiennej
modyfikator_metody NazwaKlasy (typ_argumentu nazwa_argumentu)
{
[...]
}
modyfikator_metody typ_zwracanej_wartosci nazwa_metody
(typ_argumentu nazwa_argumentu)
{
[...]
}
}
5
Konstruktor klasy
„
„
„
„
najważniejsza metoda klasy,
posiadająca taką samą nazwę jak klasa
odpowiedzialny za inicjalizację pól
podczas tworzenia i umieszczania
obiektów w pamięci
można wykorzystać więcej niż jeden
konstruktor (przeciążenie metody)
nie występuje destruktor
Dziedziczenie
„
„
„
klasa bazowa definiuje szkielet
konstrukcji rodziny klas
klasy pochodne dziedziczą wszystkie
metody oraz pola danych swej klasy
bazowej
klasy pochodne mogą na nowo
implementować odziedziczone metody
oraz dodawać nowe funkcje i pola
6
Dziedziczenie
„
dzięki zastosowaniu dziedziczenia unika
się powtarzania fragmentów kodu oraz
utrzymana zostaje przejrzystość
struktury programu, pod warunkiem
odpowiedniego (rozsądnego)
zaprojektowania hierarchii klas
Pakiety
„
„
pakiet to zestaw klas zebranych w celu
realizacji określonego zespołu czynności
możliwe jest importowanie pakietów w
dowolne miejsce programu, niezależnie
gdzie mają być użyte ich klasy
„
import nazwa_pakietu.awt.*;
7
Typowe pakiety
„
„
„
„
„
java.lang –zawiera wszystkie podstawowe
klasy Javy (jest importowany
automatycznie)
java.io –klasy obsługujące operacje
wejścia/wyjścia
java.net –klasy konieczne do tworzenia
oprogramowania wykorzystującego sieć
java.awt –klasy do tworzenia GUI
java.applet –klasy używane podczas
tworzenia apletów
Abstract Window Toolkit
„
udostępnia elementy pozwalające na
tworzenie graficznego interfejsu
użytkownika
„
„
funkcje graficzne
mechanizmy do tworzenia przycisków,
suwaków, okien, menu itp
8
Obsługa błędów
„
„
wywołaniem procedur obsługi błędów
zajmuje się interpreter (w C konieczne było
sprawdzanie wartości zwracanych przez
funkcje)
try-catch-finally –blok "try" zawiera fragment
kodu źródłowego ciała metody, w którym
mogą wystąpić błędy. Jeżeli wystąpi błąd,
działaanie bloku "try" zostanie zakończone, a
uruchomione zostaną procedury w
odpowiadającym mu bloku "catch"
Obsługa błędów
void analiza_bledow
{
try
{
[...]
}
catch (Exception1 e)
{
[...]
}
finally
{
[...]
}
}
9
Wątki
„
„
„
umożliwiają sprawniejsze wykonywanie
programu
poszczególnym wątkom mogą być
przypisany różne priorytety (->czas
obliczeniowy)
metody tworzenia wątków
„
„
tworzenie klas pochodnych zawierających
kod wątku od klasy Thread
tworzenie klasy wątku implementującej
interfejs Runnable
Zdarzenia
„
„
moseEnter, mouseExit, mouseDrag, keyDown
aby można było je obsługiwać trzeba
przedefiniować program sterujący
zdarzeniami domyślnymi, np.:
public boolean mouseDown (Event e, int x, int y)
{
//przycisk myszy został naciśnięty
//pozycja (x, y)
return (true);
}
10
Zasada funkcjonowania apletu
załadowanie apletu
do pamięci
init();
uruchomienie
apletu
start();
opuszczenie
strony
załadowanie
strony
stop();
destroy();
zatrzymanie
apletu
usunięcie
apletu z pamięci
Metody apletu
„
„
init() –wywołana jest w momencie
uruchomienia apletu, odpowiada za
przeprowadzenie wszelkich inicjalizacji
start() –wywołana jest po każdym
uruchomieniu apletu, gdy aplet korzysta
z wielu wątków, ich zainicjowanie
również następuje wewnątrz metody
start()
11
Metody apletu
„
„
stop –jest wywoływana w chwili, gdy
aplet kończy działanie, może służyć do
zatrzymania poszczególnych wątków
destroy –przejmuje funkcje kończące
działanie apletu, zanim zostanie on
ostatecznie usunięty z pamięci,
wirtualna maszyna Javy wywołuje ja
bezpośrednio przed zakończeniem
programu
Aplet na stronie
<APPLET CODE="nazwa.class" WIDTH=x
HEIGHT=y ALIGN="wyrownanie"
NAME="jakas_nazwa">
<PARAM NAME="nazwa" VALUE="cokolwiek">
[...]
Tekst dla przegladarek bez Javy
</APPLET>
12
Odczyt parametrów
„
public String getParameter (String Nazwa)
„
„
zwraca ona wartość przypisaną parametrowi
"Nazwa"
jeżeli nie ma odpowiedniego parametru,
funkcja zwróci wartość null()
Pakiety do tworzenia
„
„
„
„
JDK -Java Development Kit
Symantec Visual Cafe
Borland JBuilder
MS VisualJava
13
Przyszłość Javy
„
po początkowym wielkim
zainteresowaniu (próby tworzenia
pakietów oprogramowania w Javie)
obecnie traci ona na znaczeniu. Główną
przyczyną jest powolność działania i
zastępowanie przez inne metody
urozmaicania stron WWW (rozwój
JavaScriptu i wzrost popularności
Flasha)
Do zapamiętania
„
„
„
„
Różnice między Javą a JavaScriptem
Konstrukcja klasy
Zasada umieszczenia apletu na stronie
WWW
Zasada działania apletu na stronie
WWW
14