Praktyczny kurs Java Wydanie II.pdf

(585 KB) Pobierz
Praktyczny kurs
Java. Wydanie II
Autor: Marcin Lis
ISBN: 978-83-246-0876-8
Format: B5, stron: 400
Opanuj jķzyk programowania, ktry zmieniĀ oblicze sieci
¤ Jakie elementy tworzĴ jķzyk Java?
¤ Jak wykorzystaě peĀniķ moŃliwoľci programowania obiektowego?
¤ Jak tworzyě wĀasne aplety i aplikacje?
Interesuje Ciķ jķzyk programowania, ktry zyskuje coraz wiķkszĴ popularnoľě wľrd
twrcw rozwiĴzaĺ korporacyjnych? A moŃe zamierzasz tworzyě aplikacje dla urzĴdzeĺ
mobilnych? NajwyŃsza pora poznaě tajniki Javy. Ten jķzyk juŃ dawno przestaĀ byě
narzķdziem do tworzenia prostych programikw osadzanych na stronach WWW.
WspĀczesna Java to potķŃny obiektowy jķzyk programowania wykorzystywany
w aplikacjach bankowych i finansowych, portalach internetowych i wielu innych
systemach. Jedna z jego wersji sĀuŃy takŃe do pisania oprogramowania dla telefonw
komrkowych, terminali BlackBerry i komputerw przenoľnych. Warto wiķc poznaě Javķ.
âPraktyczny kurs Java. Wydanie IIÒ to kolejna edycja podrķcznika, dziķki ktremu
poznasz tajniki tego niezwykĀego jķzyka programowania. Znajdziesz tu omwienie
elementw najnowszej wersji Javy, sĀw kluczowych tego jķzyka, konstrukcji sterujĴcych
i zasad programowania. Dowiesz siķ, na czym polega projektowanie i programowanie
obiektowe. Nauczysz siķ korzystaě z mechanizmw obsĀugi wyjĴtkw, implementowaě
w programach operacje wejľcia i wyjľcia oraz budowaě wĀasne aplikacje i aplety.
¤ Instalacja Javy w Windows i Linuksie
¤ Instrukcje Javy
¤ Operacje na tablicach
¤ Podstawy programowania obiektowego
¤ ObsĀuga wyjĴtkw
¤ Zaawansowane zagadnienia programowania obiektowego
¤ Operacje wejľcia i wyjľcia
¤ ObsĀuga myszy i klawiatury
¤ Tworzenie interfejsw uŃytkownika
¤ Korzystanie z komponentw
Zostaĺ profesjonalnym programistĴ Javy
Wydawnictwo Helion
ul. Koľciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
945182618.050.png 945182618.053.png 945182618.054.png 945182618.055.png 945182618.001.png 945182618.002.png 945182618.003.png 945182618.004.png 945182618.005.png 945182618.006.png 945182618.007.png 945182618.008.png 945182618.009.png 945182618.010.png 945182618.011.png 945182618.012.png 945182618.013.png 945182618.014.png 945182618.015.png 945182618.016.png 945182618.017.png 945182618.018.png 945182618.019.png 945182618.020.png 945182618.021.png 945182618.022.png 945182618.023.png 945182618.024.png 945182618.025.png 945182618.026.png 945182618.027.png 945182618.028.png 945182618.029.png 945182618.030.png 945182618.031.png 945182618.032.png 945182618.033.png 945182618.034.png 945182618.035.png 945182618.036.png 945182618.037.png 945182618.038.png 945182618.039.png 945182618.040.png 945182618.041.png 945182618.042.png 945182618.043.png 945182618.044.png 945182618.045.png 945182618.046.png
 
Wstęp .............................................................................................. 5
Rozdział 1. Podstawy ......................................................................................... 9
Instalacja JDK .................................................................................................................... 9
Instalacja w systemie Windows ................................................................................ 10
Instalacja w systemie Linux ...................................................................................... 10
Przygotowanie do pracy z JDK ................................................................................. 11
Podstawy programowania ................................................................................................ 13
Lekcja 1. Struktura programu, kompilacja i wykonanie ........................................... 13
Lekcja 2. Podstawy obiektowości i typy danych ...................................................... 15
Lekcja 3. Komentarze ............................................................................................... 18
Rozdział 2. Instrukcje języka ............................................................................ 21
Zmienne ........................................................................................................................... 21
Lekcja 4. Deklaracje i przypisania ............................................................................ 22
Lekcja 5. Wyprowadzanie danych na ekran .............................................................. 25
Lekcja 6. Operacje na zmiennych ............................................................................. 30
Instrukcje sterujące .......................................................................................................... 43
Lekcja 7. Instrukcja warunkowa if...else ................................................................... 43
Lekcja 8. Instrukcja switch
i operator warunkowy ................................................... 49
Lekcja 9. Pętle ........................................................................................................... 54
Lekcja 10. Instrukcje break i continue ...................................................................... 61
Tablice ............................................................................................................................. 68
Lekcja 11. Podstawowe operacje na tablicach .......................................................... 69
Lekcja 12. Tablice wielowymiarowe ........................................................................ 73
Rozdział 3. Programowanie obiektowe .............................................................. 85
Podstawy .......................................................................................................................... 85
Lekcja 13. Klasy, pola i metody ................................................................................ 86
Lekcja 14. Argumenty i przeciążanie metod ............................................................. 93
Lekcja 15. Konstruktory .......................................................................................... 103
Dziedziczenie ................................................................................................................. 115
Lekcja 16. Klasy potomne ....................................................................................... 115
Lekcja 17. Specyfikatory dostępu i pakiety ............................................................ 122
Lekcja 18. Przesłanianie metod i składowe statyczne ............................................... 136
Lekcja 19. Klasy i składowe finalne ....................................................................... 148
945182618.047.png
4
Praktyczny kurs Java
Rozdział 4. Wyjątki ........................................................................................ 157
Lekcja 20. Blok try...catch ...................................................................................... 157
Lekcja 21. Wyjątki to obiekty ................................................................................. 165
Lekcja 22. Własne wyjątki ...................................................................................... 172
Rozdział 5. Programowanie obiektowe II ......................................................... 185
Polimorfizm ................................................................................................................... 185
Lekcja 23. Konwersje typów i rzutowanie obiektów .............................................. 185
Lekcja 24. Późne wiązanie i wywoływanie metod klas pochodnych ..................... 194
Lekcja 25. Konstruktory oraz klasy abstrakcyjne ................................................... 202
Interfejsy ........................................................................................................................ 211
Lekcja 26. Tworzenie interfejsów ........................................................................... 211
Lekcja 27. Wiele interfejsów .................................................................................. 217
Klasy wewnętrzne .......................................................................................................... 225
Lekcja 28. Klasa w klasie ........................................................................................ 225
Lekcja 29. Rodzaje klas wewnętrznych i dziedziczenie ......................................... 232
Lekcja 30. Klasy anonimowe i zagnieżdżone ......................................................... 241
Rozdział 6. System wejścia-wyjścia ................................................................ 249
Lekcja 31. Standardowe wejście ............................................................................. 249
Lekcja 32. Standardowe wejście i wyjście .............................................................. 259
Lekcja 33. System plików ....................................................................................... 271
Lekcja 34. Operacje na plikach ............................................................................... 282
Rozdział 7. Kontenery i typy uogólnione .......................................................... 299
Lekcja 35. Kontenery .............................................................................................. 299
Lekcja 36. Typy uogólnione .................................................................................... 312
Rozdział 8. Aplikacje i aplety ......................................................................... 325
Aplety ............................................................................................................................ 325
Lekcja 37. Podstawy apletów .................................................................................. 325
Lekcja 38. Czcionki i kolory ................................................................................... 330
Lekcja 39. Grafika ................................................................................................... 339
Lekcja 40. Dźwięki i obsługa myszy ...................................................................... 348
Aplikacje ........................................................................................................................ 357
Lekcja 41. Tworzenie aplikacji ............................................................................... 357
Lekcja 42. Komponenty .......................................................................................... 373
Skorowidz .................................................................................... 387
Rozdział 8.
Programy w Javie mogą być apletami (ang. applet) lub aplikacjami (ang. application).
Różnica jest taka, że aplikacja jest programem samodzielnym uruchamianym z poziomu
systemu operacyjnego (a dokładniej: maszyny wirtualnej Javy operującej na poziomie
systemu operacyjnego) i tym samym ma pełny dostęp do zasobów udostępnianych przez
system, natomiast aplet jest uruchamiany pod kontrolą innego programu, najczęściej
przeglądarki internetowej, i ma dostęp jedynie do środowiska, które mu ten program
udostępni. Inaczej aplet to program zagnieżdżony w innej aplikacji. Zazwyczaj nie ma
on dostępu np. do dysku twardego (i innych urządzeń), tak aby ściągnięty nieświadomie
z internetu nie mógł zaszkodzić użytkownikowi, kasując dane, chyba że zostanie wyposa-
żony w specjalny podpis cyfrowy i użytkownik zgodzi się na udostępnienie mu chronio-
nych zasobów. Osobną już sprawą są wykrywane co jakiś czas błędy w mechanizmach
bezpieczeństwa przeglądarek, które niekiedy powodują, że złośliwie napisane aplety mogą
obejść restrykcje i dostać się do chronionych zasobów systemu. Nie są to jednak sytuacje
bardzo częste.
W rzeczywistości różnice w konstrukcji apletu i aplikacji nie są bardzo duże, jednak
rozdział ten został podzielony na dwie sekcje. W pierwszej omówimy właśnie działające
pod kontrolą przeglądarek aplety, a w drugiej samodzielne aplikacje.
Aplety
Lekcja 37. Podstawy apletów
Wszystkie przykłady programów prezentowane we wcześniejszych lekcjach pracowały
w trybie tekstowym, najwyższy więc czas przejść w świat aplikacji pracujących w trybie
graficznym. Lekcja 37. rozpoczyna omawianie apletów, czyli niewielkich aplikacji
uruchamianych pod kontrolą przeglądarek internetowych. Zobaczymy, jak wygląda
ogólna konstrukcja apletu, w jaki sposób jest on wywoływany przez przeglądarkę oraz
jak przekazać mu parametry, które mogą sterować sposobem jego wykonania.
945182618.048.png
326
Rozdział 8. Aplikacje i aplety
Pierwszy aplet
Utworzenie apletu wymaga użycia klasy Applet lub, jeśli miałyby się w nim znaleźć
komponenty pakietu Swing , JApplet . Co prawda w pierwszych przykładach nie
będziemy wykorzystywać tej biblioteki, jednak aplety będziemy wyprowadzać z nowo-
cześniejszej klasy JApplet , komponenty Swing zostaną natomiast przedstawione w lekcji
42. Zanim jednak zaczniemy dokładne omawianie budowy tego typu programów, spró-
bujmy na rozgrzewkę napisać prosty aplet, który, jakżeby inaczej, będzie wyświetlał na
ekranie dowolny napis. Jest on widoczny na listingu 8.1.
Listing 8.1.
import javax.swing.JApplet;
import java.awt.*;
public class PierwszyAplet extends JApplet {
public void paint (Graphics gDC) {
gDC.clearRect(0, 0, getSize().width, getSize().height);
gDC.drawString ("Pierwszy aplet", 100, 50);
}
}
Na początku importujemy klasę JApplet z pakietu javax.swing oraz pakiet java.awt .
Pakiet java.awt jest potrzebny, gdyż zawiera definicję klasy Graphics , dzięki której
można wykonywać operacje graficzne. Aby utworzyć własny aplet, trzeba wyprowadzić
klasę pochodną od JApplet , nasza klasa nazywa się po prostu PierwszyAplet . Co dalej?
Otóż aplet będzie wyświetlany w przeglądarce i zajmie pewną cześć jej okna. Chcemy
na powierzchni apletu wyświetlić napis, musimy więc w jakiś sposób uzyskać do niej
dostęp. Pomaga nam w tym metoda paint . Jest ona automatycznie wywoływana za
każdym razem, kiedy zaistnieje konieczność odrysowania powierzchni apletu. Metoda
ta otrzymuje w argumencie wskaźnik do specjalnego obiektu udostępniającego metody
pozwalające na wykonywanie operacji na powierzchni apletu. Wywołujemy więc
metodę clearRect , która wyczyści obszar okna apletu 1 , a następnie drawString rysującą
napis we wskazanych współrzędnych. W powyższym przypadku będzie to napis Pierw-
szy aplet we współrzędnych x = 100 i y = 50 . Metoda clearRect przyjmuje cztery argu-
menty określające prostokąt, który ma być wypełniony kolorem tła. Dwa pierwsze
określają współrzędne lewego górnego rogu, a dwa kolejne — szerokość i wysokość.
Szerokość uzyskiwana jest przez wywołanie getSize().width 2 , a wysokość — getSi-
ze().height .
Do techniki rysowania na powierzchni apletu wrócimy już niebawem, teraz jednak zaj-
miemy się jego umieszczeniem w przeglądarce. Będzie to wymagać napisania frag-
mentu kodu HTML i umieszczenia w nim odpowiedniego znacznika. Znacznikiem histo-
rycznym służącym do umieszczania apletów był <applet> , o postaci:
1 W praktyce przed wywołaniem clearRect należałoby użyć metody setColor (patrz lekcja „Czcionki
i kolory”) tak, aby na każdej platformie uruchomieniowej uzyskać taki sam kolor tła. W różnych systemach
domyślny kolor tła może być bowiem inny.
2 Jest to więc odwołanie do pola width obiektu zwróconego przez wywołanie metody getSize . Jest to obiekt
klasy Dimension .
945182618.049.png 945182618.051.png 945182618.052.png
 
Zgłoś jeśli naruszono regulamin