w1 java, informatyka, Wykłady Java B.Pańczyk
[ Pobierz całość w formacie PDF ]
Literatura „Pierwsza fili Ŝ anka Javy” JAVA - Wprowadzenie • Laura Lemay, Rogers Cadenhead: "Java 2 dla kaŜdego", Helion, Gliwice 2001 • Marcin Lis, "Java. Ćwiczenia praktyczne.", Helion, Gliwice 2006 • Bruce Eckel: "Thinking in Java", edycja polska, Helion, Gliwice 2006 Beata Pańczyk - Java (Wykład 1) 2 Czym jest Java? Wieloplatformowo ść Javy • Uniwersalny (w pełni obiektowy) język programowania • Uniwersalne środowisko: programowania GUI, dostępu do baz danych, programowania multimediów, programowania sieciowego, programowania w systemach rozproszonych, budowania programów z gotowych komponentów - JavaBeans, środowisko przetwarzania dokumentów XML, Mikro-Java do oprogramowania obsługi sprzętu elektronicznego • Wieloplatformowość - standardowe biblioteki i narzędziowe interfejsy programistyczne (API) B-kod .class 3 4 Wersje Javy • 1.0.x - ubogi zestaw komponentów GUI, zły model obsługi zdarzeń • 1.1.x - przełom - nowy model obsługi zdarzeń, Java Beans, Swing • 1.2.x - integracja istniejących rozwiązań, Graphics 2D, platforma Java 2 (interfejs programistyczny zmienia nazwę z JDK - Java Developer Kit na Java 2 SDK - Software Developer Kit) • platforma Java 2 - trzy edycje: standardowa (J2SE), biznesowa (Enterprise Edition J2EE) i mikro (Micro Edition J2ME) dostępne pod adresem Najnowsza wersja Javy • rok 2006 - oficjalna nazwa „Java 6” (w dokumentacji uŜywany numer 1.6.) • Składnikami platformy Java (juŜ nie Java 2) są: – Java SE (ang. Java Standard Edition) - środowisko podstawowe – Java EE (ang. Java Enterprise Edition) - środowisko tworzenia aplikacji biznesowych – Java ME (ang. Java Mobility Edition) - środowisko tworzenia aplikacji do urządzeń przenośnych Te same składniki platformy Java 2 nosiły nazwy: J2SE, J2EE i J2ME . 5 6 1 B-kod .class Java SE Obiektowo ść w programowaniu • JDK (ang. Java Development Kit) - podstawowe środowisko do tworzenia i uruchamiania programów Javy • JRE (ang. Java Runtime Environment) - środowisko tylko do uruchamiania programów Javy • W Javie 2 często uŜywano zamiennie nazw JDK i SDK (ang. Standard Development Kit). Od wersji 6 rozróŜnia się JDK od SDK: – JDK – Java SE Development Kit – SDK – Java EE Development Kit. • UŜywa się takŜe określeń: JDK 6, JRE 6. • Klasa - typ danych, jej definicja opisuje właściwości typu danych (atrybuty) i działania (metody, usługi) które na nich moŜna wykonać • Obiekt – egzemplarz (instancja) określonej klasy • Metoda (usługa) - określone działanie obiektu 7 8 Obiektowo ść Javy - podstawy Struktura programu w Javie (1) • Schemat programu tworzą klasy • Wszystkie dane lub metody musz ą naleŜeć do jakiejś klasy lub obiektu. • Atrybuty obiektu nie są zwykle bezpośrednio dostępne - dane są ukryte i traktowane jako nierozdzielna całość z usługami (tzw. hermetyzacja lub enkapsulacja danych) • Koncepcja dziedziczenia klas - klasa dziedzicząca (podklasa) inną przejmuje jej właściwości i ewentualnie dodaje własne, wyspecjalizowane, kaŜda nowa klasa dziedziczy domyślnie po systemowej klasie Object • Pakiety (package) Javy są zbiorem klas i obiektów. package ... //deklaracja pakietu (nie konieczna) import ... //deklaracje importu (zwykle potrzebne) import ... /** Komentarz dokumentacyjny .......... */ public class A{ ... } class B { ... } 9 10 Struktura programu w Javie (2) Pakiety i nazwy kwalifikowane • pakiet - swoista biblioteka klas, kaŜda klasa naleŜy do jakiegoś pakietu • klasy kompilowane z deklaracją pakietu package naleŜą do pakietu o nazwie podanej w deklaracji • pakiety mają hierarchiczną strukturę np. pakiet java.awt zawiera podpakiet java.awt.event • nazwa kwalifikowana klasy znajdującej się w nazwanym pakiecie ma formę: nazwa_pakietu.nazwa_klasy • klasy zdefiniowane w nie nazwanym pakiecie (np. w pliku źródłowym) mają jako kwalifikowane swoje proste nazwy • program moŜe być zapisany w jednym lub wielu plikach źródłowych (.java), w szczególności wszystkie klasy składające się na program moŜna umieścić w jednym pliku lub kaŜdą klasę moŜna umieścić w odrębnym pliku • w jednym pliku .java moŜe się znajdować tylko jedna klasa publiczna (public class) • jeśli w pliku .java znajduje się klasa publiczna to program musi mie ć taką samą nazwę jak ta klasa • wszystkie wybrane pliki źródłowe .java podlegają kompilacji (kompilatorem javac.exe). Z kaŜdej klasy w pliku(ach) źródłowych powstaje plik B-kodu o rozszerzeniu .class 11 12 2 Deklaracja importu Programy w Javie • import pojedynczej klasy: import java.awt.Button; //importuje nazwę klasy class A{ java.awt.Frame f=new java.awt.Frame(" Tytuł "); Button b=new Button(”Ok”); //uŜycie prostej nazwy ...} • import nazw wszystkich klas danego pakietu: import java.awt.*; • pakiet java.lang (zawiera klasy String i System ) nie wymaga importu - importowany domyślnie • Aplikacja - samodzielny program • Aplet - program wykonywany za pośrednictwem przeglądarki (w komputerze-kliencie) • Serwlet - program wykonywany za pośrednictwem przeglądarki (w komputerze-serwerze) 13 14 Aplikacja • jedna z klas musi zawierać metodę public static void main(String[ ] args) • jeśli jest to klasa publiczna, nazwa tej klasy musi być taka sama jak nazwa pliku, w której jest zdefiniowana • po kompilacji pliku źródłowego .java do B-kodu (polecenie javac ) powstają pliki .class (dla kaŜdej klasy osobny plik) • poleceniem java klasa .class zostaje załadowana przez JVM (Java Virtual Machine) i sterowanie zostaje przekazane do metody main( ), gdzie zaczyna się „Ŝycie”: tworzenie obiektów, odwołania do innych klas aplikacji Aplikacja 1 - kod ź ródłowy • plik HelloWordApp.java /** * Klasa HelloWorldApp implementuje applikację, która * wyświetla napis "Hello World!" na standardowym wy */ class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); //Wyświetla napis } } 15 16 Aplikacja 1 - kompilacja Aplikacja 1 - uruchamianie 17 18 3 Aplet Aplet 1 - kod ź ródłowy .java • jedna z klas dziedziczy klasę Applet, np.: class MyAplet extends Applet{ ...} • po kompilacji powstaje (między innymi) plik MyAplet.class • musi istnieć plik HTML, w którym występuje znacznik: <applet code=MyAplet.class ...> (ewentualnie jeszcze parametry i opcje) • Plik HelloWorld.java import java.applet.Applet; import java.awt.Graphics; /** * Klasa HelloWorld implementuje applet, który * wyświetla "Hello World!" */ public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25 );//wyświetla napis } } 19 20 Aplet 1 - kod ź ródłowy .html Aplet 1 - kompilacja i uruchamianie • Plik Hello.html <HTML> <HEAD><TITLE> Pierwszy aplet </TITLE></HEAD> <BODY> Wynik działania apletu: <APPLET CODE="HelloWorld.class" WIDTH=150 HEIGHT=25> </APPLET> </BODY> </HTML> • Kompilacja HelloWorld.java do HelloWorld.class • Uruchamianie apletu w oknie przeglądarki (cały dokument HTML) lub za pomocą polecenia JDK appletviewer (tylko aplet) 21 22 Aplet 1 - widok w Applet Viewer Aplet 1 - widok w przegl ą darce 23 24 4 Do czego słu Ŝą pakiety? Przykład 1 Tworzenie pakietu graf • eliminacja konfliktów nazw • pakiet (ang. packages) w Javie - pewien podzbiór biblioteki, zawierają przewaŜnie funkcje związane tematycznie • pakiety mogą zawierać definicje interfejsów • moŜna tworzyć własne pakiety zawierające definicje klas i interfejsów przy uŜyciu wyraŜenia package . • pakiet graf zawiera np. klasy reprezentujące obiekty graficzne (punkt, odcinek, kwadrat, koło, itp.) • udostępnienie powyŜszych klas innym programistom - poprzez zgrupowanie ich w pakiecie graf , z kolei pakiet ten moŜe być częścią innego pakietu np. moje zawierającym inne zdefiniowane pakiety. • poszczególne klasy publiczne definiuje się w pliku o nazwie: NazwaKlasyPublicznej . java oprócz definicji jednej klasy publicznej w pliku tym mogą znajdować się definicje innych klas niepublicznych 25 26 Przykład 1 Definicja klas pakietu graf Przykład 1 Poło Ŝ enie plików .class • po skompilowaniu, dla ka Ŝ dej klasy tworzone są pliki z kodem bajtowym o nazwach NazwaKlasy . class • to, Ŝe klasa naleŜy do pakietu, determinuje takŜe po ł oŜenie pliku z kodem bajtowym klasy w strukturze katalogów • pliki zawierające klasy z pakietu moje.graf muszą znajdować się w folderze moje\graf a ten folder powinien znajdowa ć się w miejscu zdefiniowanym przez zmienną systemową CLASSPATH, która określa po ł oŜenie plików z kodem bajtowym klas. Jeśli zmienna ta przyjmuje wartość: CLASSPATH = C:\Windows\java\classes; to pliki znajdą się w katalogu: C:\Windows\java\classes\moje\graf • klasa Kwadrat zdefiniowana w pliku Kwadrat.java : package moje.graf; public class Kwadrat { // definicja pl danych i metod klasy Kwadrat } // ... ew. definicje innych klas niepublicznych • klasa Punkt zdefiniowana w pliku Punkt.java : package moje.graf; public class Punkt { // definicja pl danych i metod klasy Punkt } // ... ew. definicje innych klas niepublicznych 27 28 Korzystanie z pakietów Korzystanie z pakietów • klasy naleŜące do róŜnych pakietów mogą mieć takie same nazwy - kaŜdy pakiet tworzy swoją "przestrze ń nazw" • dostęp do klas z danego pakietu moŜliwy jest za pomocą deklaracji import , np. klasy zdefiniowane w pakiecie moje.graf moŜna wykorzystać w programie np.: • deklaracji import moŜna nie stosowa ć , jeśli w programie następuje odwołanie się bezpośrednio do klasy poprzez pełną nazwę kwalifikowaną: class Cos2 { moje.graf.Punkt p = moje.graf.Punkt(); } • dostęp do wszystkich klas np. z pakietu java.io, realizuje deklaracja: import java.io.*; import moje.graf; class Cos { Punkt p = Punkt(); } 29 30 5 [ Pobierz całość w formacie PDF ] |