Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu
niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą
kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym,
magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź
towarowymi ich właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce
informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani
za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych
lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej
odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce
Redaktor prowadzący: Ewelina Burska
Projekt okładki: Studio Gravite/Olsztyn
Obarek, Pokoński, Pazdrijowski, Zaprucki
Materiały graficzne na okładce zostały wykorzystane za zgodą Shutterstock.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/cwjav4
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
ISBN: 978-83-246-9662-8
Copyright © Helion 2014
Printed in Poland.
3
Spis treĚci
WstØp
7
O ksiÈĝce
8
NarzÚdzia
9
Wersje Javy
10
Rozdziaā 1. Krótkie wprowadzenie
11
Instalacja JDK
11
Tryb tekstowy
11
Instalacja w systemie Windows
13
Instalacja w systemie Linux
15
Pierwszy program
17
B-kod, kompilacja i maszyna wirtualna
19
Java a C++
20
Obiektowy jÚzyk programowania
21
Struktura programu
22
Rozdziaā 2. Zmienne, operatory i instrukcje
23
Zmienne
23
Typy podstawowe
24
Deklarowanie zmiennych typów podstawowych
25
Nazewnictwo zmiennych
28
Typy odnoĂnikowe
29
Deklarowanie zmiennych typów odnoĂnikowych
29
4
Java • Áwiczenia praktyczne
Operatory
32
Operatory arytmetyczne
33
Operatory bitowe
39
Operatory logiczne
41
Operatory przypisania
42
Operatory porównania (relacyjne)
42
Operator warunkowy
43
Priorytety operatorów
44
Instrukcje
45
Instrukcja warunkowa if…else
45
Instrukcja wyboru switch
50
PÚtla for
53
PÚtla while
57
PÚtla do…while
59
Rozszerzona pÚtla for
61
Rozdziaā 3. Tablice
63
Tworzenie tablic
63
Zapis i odczyt elementów
66
Operacje z uĝyciem pÚtli
68
Rozmiar tablicy
72
Rozdziaā 4. Obiekty i klasy
75
Metody
77
Konstruktory
86
Specyfikatory dostÚpu
94
Pakiety i typy klas
101
Dziedziczenie
102
Rozdziaā 5. Obsāuga bāØdów oraz wyjÄtki
109
BïÚdy w programach
109
Instrukcja try…catch
114
Zgïaszanie wyjÈtków
117
Hierarchia wyjÈtków
119
Rozdziaā 6. Operacje wejĚcia-wyjĚcia
123
WyĂwietlanie danych na ekranie
124
Wczytywanie danych z klawiatury
126
Nowe sposoby wprowadzania danych
135
Obsïuga konsoli
139
Operacje na plikach
145
Spis treĖci
5
Rozdziaā 7. Aplety
153
Aplikacja a aplet
153
Pierwszy aplet
154
Jak to dziaïa?
157
Cykl ĝycia apletu
158
Kroje pisma (fonty)
158
Rysowanie grafiki
161
Kolory
168
WyĂwietlanie obrazów
172
Rozdziaā 8. Interakcja z uĻytkownikiem
179
Obsïuga myszy
180
Rysowanie figur (I)
183
Rysowanie figur (II)
188
Rysowanie figur (III)
190
Rozdziaā 9. Aplikacje z interfejsem graficznym
195
Tworzenie okna aplikacji
195
Budowanie menu
199
Wielopoziomowe menu
206
Okna dialogowe
209
Rozdziaā 10. Grafika i komponenty
215
Rysowanie elementów graficznych
215
Obsïuga komponentów
217
Przyciski JButton
218
Pola tekstowe JTextField
219
Pola tekstowe JTextArea
221
Etykiety JLabel
224
Pola wyboru JCheckBox
226
Listy rozwijane JComboBox
228
„Prawdziwa” aplikacja
230
7
WstØp
Chyba kaĝdy, kto interesuje siÚ informatykÈ, sïyszaï o Javie. Ten
stosunkowo mïody (w porównaniu z C++ czy Pascalem) jÚzyk pro-
gramowania wyjÈtkowo szybko zdobyï bardzo duĝÈ popularnoĂÊ i ak-
ceptacjÚ ze strony programistów na caïym Ăwiecie. PoczÈtkowo wiele
osób kojarzyïo JavÚ tylko z apletami zawartymi na stronach WWW.
To jednak tylko niewielka czÚĂÊ zastosowañ, która dziĂ straciïa juĝ
nieco na znaczeniu. Tak naprawdÚ jest to doskonaïy obiektowy jÚzyk
programowania, majÈcy róĝnorodne zastosowania — od krótkich
apletów do powaĝnych aplikacji. PoczÈtki byïy jednak zupeïnie inne.
ByÊ moĝe trudno w to obecnie uwierzyÊ, ale jÚzyk ten, pierwotnie
znany jako Oak (z ang. dÈb), miaï sïuĝyÊ jako narzÚdzie do sterowa-
nia tzw. urzÈdzeniami elektronicznymi powszechnego uĝytku, czyli
wszelkiego rodzaju telewizorami, magnetowidami, pralkami czy ku-
chenkami mikrofalowymi. Praktycznie — dowolnym urzÈdzeniem,
które posiadaïo mikroprocesor. I to pierwotne przeznaczenie nie jest
wspóïczeĂnie mniej istotne niĝ kiedyĂ. W dobie powszechnej kom-
puteryzacji i podïÈczania do sieci rozmaitych urzÈdzeñ (w tym takĝe
wspomnianych lodówek i pralek) takie zastosowanie wrÚcz zwiÚksza,
a nie zmniejsza atrakcyjnoĂÊ jÚzyka. StÈd teĝ wywodzi siÚ jedna z naj-
wiÚkszych zalet Javy — jej przenoĂnoĂÊ, czyli moĝliwoĂÊ uruchamiania
jednego programu na wielu róĝnych platformach. Skoro bowiem
8
Java • Áwiczenia praktyczne
miaïa sïuĝyÊ do programowania dla tak wielu róĝnorodnych urzÈ-
dzeñ, musiaïa byï niezaleĝna od platformy sprzÚtowo-systemowej.
Ten sam program moĝna bÚdzie wiÚc uruchomiÊ, przynajmniej teore-
tycznie, zarówno na komputerze PC i Macintosh, jak i w Windowsie
oraz Uniksie.
Historia Oak rozpoczÚïa siÚ pod koniec 1990 roku. JÚzyk zostaï opra-
cowany jako czÚĂÊ projektu o nazwie Green, rozpoczÚtego przez Patricka
Naughtona, Mike’a Sheridana i Jamesa Goslinga w firmie Sun Micro-
systems. JÚzyk byï opracowany juĝ w 1991 roku, jednak do 1994 roku
nie udaïo siÚ go spopularyzowaÊ i prace nad projektem zostaïy zawie-
szone. Byï to jednak czas gwaïtownego rozwoju sieci Internet i oka-
zaïo siÚ, ĝe Oak doskonale sprawdzaïby siÚ w tak róĝnorodnym Ărodo-
wisku, jakim jest globalna sieÊ. W ten oto sposób w 1995 roku Ăwiatïo
dzienne ujrzaïa Java.
To, co staïo siÚ póěniej, zaskoczyïo chyba wszystkich, w tym samych
twórców jÚzyka. Java niewiarygodnie szybko zostaïa zaakceptowa-
na przez spoïecznoĂÊ internetowÈ i programistów na caïym Ăwiecie.
NiewÈtpliwie bardzo duĝy wpïyw miaïa tu umiejÚtnie prowadzona
kampania marketingowa producenta. Niemniej decydujÈce byïy z pew-
noĂciÈ wyjÈtkowe zalety tej technologii. Java to bardzo dobrze skon-
struowany jÚzyk programowania, który programistom zwykle przypada
do gustu juĝ przy pierwszym kontakcie. W kaĝdym razie o Javie
mówiÈ i piszÈ wszyscy, pojawiajÈ siÚ setki ksiÈĝek i stron interneto-
wych, powstajÈ w koñcu napisane w niej programy. Obecnie to juĝ
dojrzaïa, choÊ wciÈĝ rozwijana technologia, która wrosïa na dobre
w Ăwiat informatyki.
O ksiÄĻce
Celem niniejszej publikacji jest przedstawienie nie wszystkich aspek-
tów programowania w Javie, ale jedynie pewnego wycinka tego za-
gadnienia. Omówione zostaïy podstawowe zasady programowania,
zamieszczono przykïady tworzenia apletów, czyli programów osa-
dzanych w stronach WWW, a takĝe zaprezentowano podstawy tworze-
nia aplikacji z graficznym interfejsem oraz operacje wejĂcia-wyjĂcia.
Niestety, ze wzglÚdu na ograniczonÈ iloĂÊ miejsca nie moĝna byïo
przedstawiÊ wielu ciekawych i bardziej zaawansowanych zagadnieñ,
dlatego teĝ bÚdzie to raczej wycieczka po programowaniu w Javie niĝ
WstÔp
9
metodyczny kurs opisujÈcy caïoĂÊ zagadnienia. Jak jednak wskazuje
sam tytuï, ta publikacja to Êwiczenia, które majÈ pozwoliÊ na szybkie
zapoznanie siÚ z podstawowymi konstrukcjami jÚzyka, niezbÚdnymi
do rozpoczÚcia programowania. Niniejsze Êwiczenia bÚdÈ wiÚc za-
równo doskonaïym podrÚcznikiem dla osób, które by szybko chciaïy
zapoznaÊ siÚ ze strukturÈ jÚzyka, jak i uzupeïnieniem bardziej meto-
dycznego kursu, jakim jest np. publikacja Praktyczny kurs Java
(http://helion.pl/ksiazki/pkjav4.htm). Zagadnienia zaawansowane, np.
tworzenie aplikacji sieciowych lub bazodanowych, zostaïy teĝ przed-
stawione w publikacji Java. mwiczenia zaawansowane (http://helion.pl/
ksiazki/czjav2.htm).
NarzØdzia
Aby rozpoczÈÊ programowanie w Javie, niezbÚdne sÈ odpowiednie
narzÚdzia. Konkretnie — kompilator oraz maszyna wirtualna, która
interpretuje skompilowane programy. BÚdziemy opieraÊ siÚ tu na
pakiecie Java Development Kit (JDK). Moĝna skorzystaÊ z wersji sy-
gnowanej przez oficjalnego producenta Javy — firmÚ Oracle
1
— lub
rozwijanej na zasadach wolnego oprogramowania wersji OpenJDK. Wer-
sja oficjalna dostÚpna jest pod adresami http://www.oracle.com/java/ ,
http://java.sun.com (w tym przypadku nastÈpi przekierowanie do
domeny oracle.com) oraz http://www.java.com, a OpenJDK pod ad-
resem http://openjdk.java.net/. Najlepiej korzystaÊ z moĝliwie nowej
wersji JDK, tzn. 1.7 (7.0), 1.8 (8.0) lub wyĝszej (o ile taka bÚdzie do-
stÚpna), choÊ podstawowe przykïady bÚdÈ dziaïaÊ nawet na bardzo
wiekowej juĝ wersji 1.1.
Przy Êwiczeniach omawiajÈcych tworzenie apletów moĝna skorzystaÊ
z dowolnej przeglÈdarki internetowej obsïugujÈcej jÚzyk Java lub teĝ
dostÚpnej w JDK aplikacji appletviewer. WiÚkszoĂÊ obecnie dostÚp-
nych na rynku przeglÈdarek udostÚpnia JavÚ poprzez mechanizm
wtyczek, umoĝliwiajÈc zastosowanie najnowszych wersji JRE (ang.
Java Runtime Environment), czyli Ărodowiska uruchomieniowego. Na-
leĝy z tej moĝliwoĂci skorzystaÊ.
1
Pierwotny producent — Sun Microsystems — zostaï zakupiony przez Oracle
w 2009 roku. Tym samym obecnie to Oracle oficjalnie odpowiada
za rozwój Javy.
10
Java • Áwiczenia praktyczne
Oprócz JDK bÚdzie potrzebny jedynie dowolny edytor tekstowy (ko-
rzystajÈcym ze Ărodowiska Windows moĝna poleciÊ np. doskonaïy
Notepad++) pozwalajÈcy na wpisywanie tekstu programów i zapi-
sywanie ich w plikach na dysku. Istnieje co prawda moĝliwoĂÊ uĝywa-
nia zintegrowanych Ărodowisk programistycznych, jednak dla osób
poczÈtkujÈcych lepszym zestawem byïby JDK i zwykïy edytor tek-
stowy (najlepiej programistyczny), tak aby najpierw poznaÊ dobrze
sam jÚzyk i jego wïaĂciwoĂci, a dopiero póěniej bardziej zaawanso-
wane narzÚdzia (oczywiĂcie jeĂli ktoĂ woli pracÚ w Ărodowiskach ta-
kich jak NetBeans czy Eclipse, moĝe ich równieĝ z powodzeniem
uĝywaÊ do nauki).
Wersje Javy
Pierwsza powszechnie wykorzystywana wersja Javy nosiïa numer 1.1
(JDK 1.1 i JRE 1.1). Stosunkowo szybko pojawiïa siÚ jednak kolejna
wersja, oznaczona numerem 1.2. Niosïa ona ze sobÈ na tyle znaczÈce
zmiany i usprawnienia, ĝe nadano jej nazwÚ Platforma Java 2 (ang.
Java 2 Platform). Tym samym wersja poprzednia zostaïa nazwana
PlatformÈ Java 1. W ramach projektu Java 2 powstaïy trzy wersje na-
rzÚdzi JDK i JRE: 1.2, 1.3 i 1.4, a kaĝda z nich miaïa od kilku do kil-
kunastu podwersji. Kolejnym krokiem w rozwoju projektu byïa wersja
1.5, która ze wzglÚdów czysto marketingowych zostaïa przemiano-
wana na 5.0. NastÚpnie pojawiïy siÚ wersje 6.0 (czyli 1.6), 7 (czyli
1.7) oraz 8 (czyli 1.8). Podczas przygotowywania materiaïów do niniej-
szej ksiÈĝki uĝywane byïy wersje 6, 7 i 8. JeĂli stosowano konstrukcje
jÚzyka dostÚpne wyïÈcznie w wersji 7 lub 8, byïo to oznaczane w opi-
sach przykïadów. Warto przy tym wspomnieÊ, ĝe wewnÚtrzna nume-
racja narzÚdzi (widoczna np. w opcjach kompilatora javac i narzÚdzia
uruchomieniowego java) wciÈĝ bazuje na wczeĂniejszej, logicznej
numeracji (czyli Java 6.0 jest toĝsama z Java 1.6, Java 7 to inaczej Java
1.7, a Java 8 to inaczej Java 1.8).