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