Piątek 04 Kwiecień 2025r. Godz 00:00:00      
Postów: 251      

Co warto wiedzieć o Javie

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

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

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?

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

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.

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.

Zdarzenia

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.