podstawy (3)





Podstawowe informacje





Co warto
wiedzieć o Javie przed przystąpieniem do pisania programu ?






Wstęp

Narzędzia potrzebne
do pisania w Javie

Zawartosć
pakietu Java Developers Kit

Co to jest Hot Java?

Pakiety Javy

Zaczynamy pisanie

Zdarzenia

Deklaracja appletu w dokumencie
HTML

Typowa strukrura appletu






Wstęp

Java to nowoczesny, w pełni obiektowy język programowania, dziedziczący
wszystkie pozytywne cechy technologii obiektowej i pozwalający na płynne
przejście z etapu projektowania obiektowego do etapu pisania programu.
Tworzenie aplikacji odbywa się w kategoriach klas, obiektów, interfejsów
i pakietów. Klasa to definicja (szkielet) obiektu, określająca typy atrybutów
i metody (w podejściu strukturalnym zmienne i procedury). Obiekt to konkretny
egzemplarz danej klasy, dzięki któremu (za pośrednictwem wywołania dostępnych
metod) przeprowadzamy proces przetwarzania danych programu. Java pozwala
na definiowanie tzw. klas abstrakcyjnych, służących jedynie jako klasy
bazowe, które nie pozwalają na tworzenie obiektów. Wykorzystanie klas abstrakcyjnych
jest uzasadnione w przypadku programów zawierających wiele klas o podobnej
strukturze. (np. dla klas samochód_osobowy, samochód_dostawczy i samochód_sportowy
budujemy klasę bazową w postaci klasy abstrakcyjnej samochód). Uproszczoną
formą klasy abstrakcyjnej jest interfejs, dzięki któremu deklarujemy metody,
które zostaną zaimplementowane przez inne klasy. Zrezygnowano z mechanizmu
wielokrotnego dziedziczenia, który może być zastąpiony przez odpowiednie
użycie klas abstrakcyjnych i interfejsów. Podobnie jak w języku Ada wprowadzono
pojęcie pakietu. Grupowanie klas i interfejsów w pakiety znacznie zwiększa
czytelność kodu źródłowego programu. Po przeprowadzeniu kompilacji programu,
każda klasa umieszczana jest w oddzielnym pliku, dzięki czemu modyfikacja
jednej klasy nie pociąga za sobą rekompilacji pozostałych fragmentów programu,
w których występują odwołania do tej klasy. Wprowadzono spójny system podstawowych
typów danych. Dla programistów C/C++ ważną wydaje się być informacja, iż
Java nie zawiera typów danych: pointer, struct i union. Typy te mogą być
z powodzeniem zastąpione poprzez odpowiednie użycie klas i obiektów. Usunięcie
instrukcji goto całkowicie wymazuje wspomnienia o niestrukturalnych technikach
tworzenia oprogramowania.




Narzędzia
potrzebne do pisania w Javie

na początek

Do tworzenia appletów Javy jest potrzebny specjalny program zwany kompilatorem,
który przekształca instrukcje Javy, zrozumiałe dla człowieka, na tzw. bytecode
(kod bajtowy, kod wirtualny), czyli zera i jedynki, zrozumiałe dla przeglądarki.
Jesli się zamierza tworzyć programy w języku takim jak C++, trzeba kupić
kompilator tego języka u jego dystrybutora. Inaczej ma się rzecz z kompilatorem
Javy - Java Developers Kit, który można przekopiować bezpłatnie,
korzystając z internetu, a konkretnie ze strony WWW firmy sun o adresie:
http://java.sun.com. Strona ta pozwala
uzyskać wersje Javy przeznaczone dla systemów Windows 95, Windows NT (ale
nie ma wersji dla Windows 3.x !!!), Macintosha oraz systemów opartych
o UNIX (także wersję dla LINUX-a). Co najważniejsze Java Developers Kit
jest stale aktualizowany. Pozwala to korzystać z najnowszych wersji pakietu
bez ponoszenia dodatkowych opłat.

W zależnosci od rodzaju wersji kopiowanego pakietu Java Developers Kit
czynnosci, które trzeba wykonać w celu jego zaintalowania, różnią się od
siebie. Jednak na stronie WWW firmy Sun można znaleźć instrukje wyjasniające
krok po kroku przebieg instalacji pakietu dla danego rodzaju systemu.




Zawartosć
pakietu Java Developers Kit

na początek

W skład Java Developers Kit wchodzi kompilator Javy, którego można używać
do tworzenia appletów. Oprócz tego w pakiecie tym można znaleźć kilka programów
narzędziowych, tskich jak Applet Viewer, unożliwiający uruchamianie i wyswietlanie
appletów, debuger, pomagający znajdować i usuwać błędy w tworzonych appletach,
a także tak zwany generator dokumentów, upraszczający przygotowywanie dokumentacji
programów. Poniżej zestawiono kilka wybranych programów zawartych w pakiecie
Java Developers Kit.



Program

Zastosowanie



java

Interpreter Javy, pozwalający uruchamiać samodzielnie programy



javac

Kompilator Javy.



javadoc

Generator dokumentów Javy.



javah

generator plików C, tworzący pliki nagłówkowe oraz pliki źródłowe zawierające
tekst potrzebny do definiowania klas.



javap

Disasembler Javy.



jdb

Debuger Javy.



Oprócz kompilatora i programów narzędziowych Java Developers Kit zawiera
wiele przykładowych appletów, których tekst źródłowy warto analizować po
tp, aby pogłębić swoją znajomosć Javy.




Co to jest Hot Java?

na początek

Wielu użytkowników nie znających języka programowania Java myli go często
z Hot Javą, przeglądarką napisana w Javie.Krótko mówiąc, Java jest językiem
programowania używanym przez programistów do tworzenia programów i appletów,
podczas gdy Hot Java jest przeglądarką, taką samą, jak na przykład Netscape
Navigator. Tym co decyduje o niepowtarzalnosci Hot Javy, jest fakt, że
zostałą ona w całosci napisana w Javie. Kiedy rozpoczniesz testowanie tworzonych
appletów Javy, możesz uruchomić Hot Javę, gdyż firma Sun pozwala na jej
przekopiowanie ze swojej strony WWW.




Pakiety Javy

na początek

Mocną stroną Java są bogate biblioteki. Podstawowe pakiety, których
metody mogą zostać wykorzystane w trakcie tworzenia oprogramowania to:







java.lang



pakiet zawierający podstawowe klasy Java
(automatycznie importowany do każdego programu);





java.applet



pakiet pozwalający na tworzenie apletów
(ang. applet);





java.awt



(AWT - Abstract Window Toolkit) zintegrowany
pakiet klas przeznaczony do wspomagania tworzenia interfejsu graficznego
użytkownika





java.awt.peer



pakiet zawierający wyspecjalizowane dla
konkretnej platformy komponenty AWT





java.awt.image



pakiet przeznaczony do zarządzania i obróbki
obrazu





java.io



pakiet zawierający klasy pozwalające na
zarządzanie wejściowym i wyjściowym strumieniem danych (np. pisanie do
pliku)





java.net



pakiet wspomagający tworzenie programów
sieciowych (adresy URL, gniazdka TCP i UDP, adresy IP, ... )





java.util



pakiet świadczący inne usługi (np. generacja
liczb losowych, operacje na ciągach znaków, ...)






Zaczynamy
pisanie programu.

na początek

Najpowszechniejszą formą wykorzystania języka Java jest pisanie apletów
(ang. applet). Aplet to program, którego uruchomienie na określonej
platformie wymaga instalacji tzw. wirtualnej maszyny Java. Kod źródłowy
apletu nie podlega kompilacji do kodu wewnętrznego maszyny - aplet kompilowany
jest do postaci kodu pośredniego bytecode. Wirtualna maszyna
Java to nic innego jak interpreter tego kodu. Dzięki takiemu podejściu
aplety są całkowicie niezależne od przyjętej platformy sprzętowej i systemu
operacyjnego. Dystrybucja programów Java w sieci Internet odbywa się poprzez
"wplatanie" apletów do dokumentów HTML. Warunkiem oglądania efektu dołączenia
apletu do strony HTML jest posiadanie przeglądarki WWW, wyposażonej w interpreter
kodu pośredniego bytecode (np. Netscape Navigator 2.01 -
wersja dla Windows 95). Oprócz możliwości wywołania apletu na określonej
stronie, możemy także dokonać przekazania dowolnej ilość parametrów, określających
jego sposób działania. Oznacza to zatem, że jesteśmy w stanie tworzyć programy
uniwersalne. Niezwykle istotnym faktem jest brak dodatkowych wymagań względem
serwera WWW - cały ciężar realizacji apletu spoczywa na naszej, pracujacej
lokalnie przeglądarce WWW. Interpreter bytecode, pracuje w określonym
środowisku, zawierajacym szereg wykonywalnych programów, tworzących w pewnym
sensie bibliotekę klas Javy typu run-time. Dzieki temu, niekiedy
skomplikowane operacje mogą być wykonane za pomocą apletu zawierającego
kilka linii kodu.

Wszystkie aplety tworzone są jako klasy potomne klasy bazowej Applet.
Java jest szczególnie dogodnym narzędziem do przeprowadzania prezentacji
audiowizualnych. Klasa AudioClip dostarcza prostego mechanizmu odtwarzania
dźwięku.


AudioClip X; /* deklaracja obiektu klasy AudioClip */

X=getAudioClip(getDocumentBase(),"./melodia.au"); /* inicjalizacja
obiektu */

/* sterowanie odtwarzaniem dźwięku */

X.play();

X.loop();

X.stop();


W równie prosty sposób dokonujemy wyświetlania obrazów graficznych.



Image Y; /* deklaracja obiektu klasy Image */

Y=getImage(getCodeBase(),"./obrazek.gif"); /* inicjalizacja
obiektu */

public void paint(Graphics g)

{

...

/* wyświetla obraz (lewy górny róg w punkcie o współrzędnych
(10,60) */

g.drawImage(Y,10,60,this);

...

}


Przeprowadzenie prostej animacji sprowadza się to inicjalizacji wątku
(ang. thread) i wielokrotnego wyświetlania różnych obrazów graficznych
w tym samym miejscu ekranu.




Zdarzenia

na początek

Jak już wspomniałem wcześniej, Java pozwala na tworzenie w pełni interakcyjnych
aplikacji. Język oferuje znaczne udogodnienia w zakresie realizacji mechanizmu
odpowiedzi programu na zdarzenia wywołane przez określone działania użytkownika
(np. naciśnięcie przycisku myszki, w określonym polu ekranu, spowoduje
odtwarzanie dźwięku). Wyróżniamy zdarzenia niskiego i wysokiego poziomu.
Zdarzenia niskiego poziomu postrzegamy w kategoriach sprzętowych (np. fakt
naciśnięcia przycisku myszki). Mówiąc o zdarzeniach wysokiego poziomu,
mamy na myśli wszelkie działania użytkownika dokonywane na elementach interfejsu
graficznego programu (np. wpisanie tekstu w pole TextField). Kluczową rolę,
w odniesieniu do zagadnienia obsługi zdarzeń, odgrywa klasa Component
(pakiet AWT). Metody tej klasy pozwalają na przeprowadzenia sprawnej
reakcji systemu na wymuszenia użytkownika, a ich wykorzystanie sprowadza
się do dostosowania określonej metody do specyfiki programu. Metoda handleEvent()
jest najbardziej ogólną z nich i umożliwia na implementację obsługi niemal
każdego zdarzenia, jednak stosowanie jej wymaga od programisty dobrej znajomości
środowiska pracy programu. Użycie handleEvent() w przypadku aplikacji,
w których szczególnie zależy nam na poprawności pracy programu, może okazać
się zbyt ryzykowne, dlatego też istnieje zestaw prostych w zastosowaniu
metod, dedykowanych do obsługi tylko jednego, konkretnego zdarzenia:


mouseMove() - obsługa myszki

mouseDown()

mouseDrag()

mouseUp()

mouseEnter()

mouseExit()

keyUp() - obsługa klawiatury

keyDown()

getFocus()

lostFocus()


Na uwagę zasługuje także metoda action(), umożliwiająca realizację
obsługi zdarzeń wysokiego poziomu i zdarzeń warunkowych (np. równoczesne
naciśnięcie przycisku myszki i klawiatury). Każda z wymienionych powyżej
metod powinna posiadać przynajmniej jeden argument wywołania - obiekt Event.
Egzemplarz klasy Event tworzony jest automatycznie, wraz z wystąpieniem
dowolnego zdarzenia. Podstawowym zadaniem tego obiektu jest gromadzenie
danych o rodzaju zaistniałego zdarzenia, czasie jego wystąpienia, obiekcie
którego dotyczyło (np. zdarzenie wciśnięcia przycisku GUI odnosi
się do obiektu Button), itp. . Event stanowi bazę informacyjną
dla mechanizmu odpowiedzialnego za prowadzenie prawidłowej reakcji programu
na działania użytkownika.




Deklaracja
apletu w dokumencie HTML

na początek

<applet [parametry] > początek bloku deklaracji


[parametry]:

name="N" - lokalna nazwa programu w ramach dokumentu
HTML
code="C" - rzeczywista nazwa programu
codebase="B" - adres URL programu (nazwa serwera/katalog)

ALT="T" - tekst wyświetlany w razie braku możliwości uruchomienia
programu
align ="A" - miejsce wyświetlania programu względem sąsiadującego
tekstu: top , texttop , bottom , absbottom
, baseline , middle , absmiddle , left , right
.
width="W" - szerokość obszaru przydzielonego do wyświetlania
programu (na stronie HTML)
height="H" - wysokość obszaru przydzielonego do wyświetlania
programu (na stronie HTML)
vspace="V" - odległość od sąsiadującego tekstu w pionie

hspace="S" - odległość od sąsiadującego tekstu w poziomie


parametry określające działanie programu


< param name= "M" value="L">

gdzie: M - nazwa parametru , L - wartość parametru


</applet> koniec bloku deklaracji

Np.

<html> ...
<applet name="Animacja" code="Animacja.class" codebase="/usr/jaro/anim"
... width="140" height="100" align="Top">

<param name="szybkosc_animacji" value="500">
...
</applet>
<a href="file:/usr/jaro/Animacja.java"> Kod programu</a>
...
</html>




Typowa
struktura apletu Java

na początek


import java.awt.*; import java.applet.*;
public class mój_pierwszy_aplet extends Applet implements Runnable {

... ZADEKLARUJ ZMIENNE PROGRAMU

/* np. Thread wtek_mojego_programu; int szybkość_mojego_programu;
*/

public void init()
{

... OKREŚL WSTĘPNE WARTOŚCI ZMIENNYCH

/* np. szybkość_mojego_programu=100; */

... OKREŚL ROZMIAR POLA WYŚWIETLANEGO PROGRAMU

/* np. resize(100,100); */
}

... NAPISZ METODY PROGRAMU

/* np. public void metoda_mojego_apletu()
{
szybkość_mojego_programu++;
}
*/

/* wyświetlenie strony graficznej programu */
public void paint(Graphics g)
{
...

/* np.
g.drawString("Szybkość mojego programu ma wartość:",10,10); g.drawString(String.valueOf(szybkość_mojego_programu),80,10);

*/
}

public void start()
{
wtek_mojego_programu =new Thread(this);
wtek_mojego_programu .start();
}

public void stop()
{
wtek_mojego_programu .stop();
}

public void run()
{
while(true)
{
try {
Thread.currentThread().sleep(szybkość_mojego_programu);
}
catch (InterruptedException e ){}

... WYWOŁAJ METODY PROGRAMU
/* np. metoda_mojego_apletu(); */

/* aktualizacja grafiki */
repaint();
} } }


na początek





Wyszukiwarka

Podobne podstrony:
Wyk6 ORBITA GPS Podstawowe informacje
Podstawowe informacje o Rybnie
3 podstawy teorii stanu naprezenia, prawo hookea
zestawy cwiczen przygotowane na podstawie programu Mistrz Klawia 6
podstaw uniw
Jezyk angielski arkusz I poziom podstawowy (5)
07 GIMP od podstaw, cz 4 Przekształcenia
Podstawy dzialania routerow i routingu
Podstawy Cyfrowego Przetwarzania Sygnalów
C20408 podstawy org UN, odruchy
PA3 podstawowe elementy liniowe [tryb zgodności]

więcej podobnych podstron