Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TRE(cid:140)CI
SPIS TRE(cid:140)CI
Java. ˘wiczenia praktyczne
KATALOG KSI¥flEK
KATALOG KSI¥flEK
KATALOG ONLINE
KATALOG ONLINE
Autor: Marcin Lis
ISBN: 83-7197-723-9
Format: B5, stron: 166
Chyba ka¿dy, kto interesujŒ siŒ Internetem, s‡ysza‡ o Javie. Ten, w koæcu stosunkowo
m‡ody, jŒzyk programowania wyj„tkowo szybko zdoby‡ sobie bardzo du¿„ popularno(cid:156)(cid:230)
i(cid:160) akceptacjŒ ze strony programist(cid:243)w na ca‡ym (cid:156)wiecie. I cho(cid:230) jego przysz‡o(cid:156)(cid:230) wcale nie
jest jeszcze przes„dzona, wiele wskazuje na to, ¿e Java stanie siŒ jednak dominuj„c„
technologi„ ju¿ w niedalekiej przysz‡o(cid:156)ci. Skoro tak, warto pozna(cid:230) j„ ju¿ teraz. Wiele
os(cid:243)b kojarzy JavŒ tylko z apletami zawartymi na stronach WWW. To jednak tylko czŒ(cid:156)(cid:230)
zastosowaæ. Tak naprawdŒ to doskona‡y, obiektowy jŒzyk programowania, nadaj„cy siŒ
do r(cid:243)¿norodnych zastosowaæ.
Autor zapoznaje czytelnika z podstawami jŒzyka przez seriŒ kilkudziesiŒciu (cid:230)wiczeæ.
Kurs ten jednak pozwoli zrozumie(cid:230) istotŒ jŒzyka, a zagadnienia zaawansowane stan„ siŒ
bardziej czytelne, gdy przysz‡y programista siŒgnie po kolejne ksi„¿ki.
ZAM(cid:211)W DRUKOWANY KATALOG
ZAM(cid:211)W DRUKOWANY KATALOG
TW(cid:211)J KOSZYK
TW(cid:211)J KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAM(cid:211)W INFORMACJE
ZAM(cid:211)W INFORMACJE
O NOWO(cid:140)CIACH
O NOWO(cid:140)CIACH
ZAM(cid:211)W CENNIK
ZAM(cid:211)W CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥flEK ONLINE
FRAGMENTY KSI¥flEK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Wstęp........................................................................................................................................ 7
Przyszłość Javy............................................................................................................ 8
O książce...................................................................................................................... 8
Narzędzia ..................................................................................................................... 9
Przykłady ..................................................................................................................... 9
Część I
Język programowania............................................................................... 11
Rozdział 1. Krótkie wprowadzanie...................................................................................................13
Zaczynamy................................................................................................................. 13
B-kod i maszyna wirtualna ........................................................................................ 14
Java a C++ ................................................................................................................. 15
Obiektowy język programowania.............................................................................. 15
Struktura programu.................................................................................................... 16
Rozdział 2. Zmienne, operatory i instrukcje............................................................................... 17
Zmienne ..................................................................................................................... 17
Typy podstawowe ...............................................................................................................17
Deklarowanie zmiennych typów podstawowych ...............................................................18
Typy odnośnikowe..............................................................................................................20
Deklarowanie zmiennych typów odnośnikowych ..............................................................21
Operatory ................................................................................................................... 24
Operatory arytmetyczne......................................................................................................24
Operatory bitowe ................................................................................................................28
Priorytet operatorów ...........................................................................................................31
Instrukcje ................................................................................................................... 31
Instrukcja warunkowa if...else ............................................................................................31
Instrukcja switch .................................................................................................................35
4
Java. Ćwiczenia praktyczne
Pętla for...............................................................................................................................37
Pętla while ..........................................................................................................................40
Rozdział 3. Obiekty i klasy...................................................................................................................43
Metody....................................................................................................................... 44
Konstruktory.............................................................................................................. 50
Specyfikatory dostępu ............................................................................................... 52
Dziedziczenie............................................................................................................. 55
Rozdział 4. Wyjątki.................................................................................................................................. 57
Błędy w programach.................................................................................................. 57
Instrukcja try...catch .................................................................................................. 60
Instrukcja throws ....................................................................................................... 62
Hierarchia wyjątków ................................................................................................. 63
Część II Aplety................................................................................................................65
Rozdział 5. Rysowanie........................................................................................................................... 67
Aplikacja a Aplet ....................................................................................................... 67
Pierwszy aplet............................................................................................................ 67
Jak to działa? ............................................................................................................. 69
Czcionki..................................................................................................................... 70
Rysowanie grafiki...................................................................................................... 73
Kolory ........................................................................................................................ 78
Wyświetlanie plików graficznych ............................................................................. 80
Rozdział 6. Dźwięki..................................................................................................................................85
Rozdział 7. Animacje..............................................................................................................................89
Pływający napis ......................................................................................................... 89
Pływający napis z buforowaniem.............................................................................. 93
Zegar cyfrowy............................................................................................................ 94
Animacja poklatkowa ................................................................................................ 96
Zegar analogowy ....................................................................................................... 98
Rozdział 8. Interakcja z użytkownikiem.....................................................................................103
Obsługa myszy ........................................................................................................ 103
Rysowanie figur (I).................................................................................................. 106
Rysowanie Figur (II) ............................................................................................... 111
Rysowanie Figur (III) .............................................................................................. 112
Spis treści
5
Część III Aplikacje........................................................................................................ 117
Rozdział 9. Okna i menu...................................................................................................................... 119
Rozdział 10. Grafika i komponenty..................................................................................................133
Klasa Button ............................................................................................................ 134
Klasa TextField........................................................................................................ 136
Klasa TextArea ........................................................................................................ 139
Klasa Label .............................................................................................................. 142
Klasa Checkbox....................................................................................................... 144
Klasa List ................................................................................................................. 146
Rozdział 11. Operacje wejścia-wyjścia.........................................................................................151
Wczytywanie danych z klawiatury.......................................................................... 151
Operacje na plikach ................................................................................................. 156
Zakończenie .....................................................................................................................165
Zmienna jest to miejsce, w którym możemy przechowywać jakieś dane np. liczby czy
ciągi znaków. Każda zmienna musi mieć swoją nazwę, która ją jednoznacznie identyfi-
kuje. Każda zmienna ma także swój typ, który informuje o tym, jakiego rodzaju dane
można w niej przechowywać. Np. zmienna typu 28 przechowuje liczby całkowite,
a zmienna typu 03+8 liczby zmiennoprzecinkowe. Typy w Javie dzielą się na dwa rodzaje:
typy podstawowe (ang. primitive types) oraz typy odnośnikowe (ang. reference types).
Typy podstawowe dzielą się na typy arytmetyczne oraz typ boolean. Zmienna typu ,3(cid:9)
3/+2 może przyjmować tylko dwie wartości mianowicie 869/ i 0+7/. $69/ oznacza lo-
giczną prawdę, natomiast 0+7/ logiczny fałsz. Typy arytmetyczne dzielą się z kolei na 84
-+o3;83-,3;/
(ang. integral type) oraz 84/22346/-23;/ (ang. floating-point
type). Rodzina typów całkowitoliczbowych składa się z pięciu typów:
(cid:1)
,8/,
(cid:1)
7368,
(cid:1)
28,
(cid:1)
321,
(cid:1)
-+6.
18
Część I (cid:1) Język programowania
W przeciwieństwie do C++ dokładnie określono sposób reprezentacji tych danych. Nie-
zależnie więc od tego, na jakim systemie pracujemy (16-, 32- czy 64-bitowym), dokład-
nie wiadomo na ilu bitach zapisana jest zmienna danego typu. Wiadomo też dokładnie
z jakiego zakresu wartości może ona przyjmować. Nie ma wiec dowolności, która
w przypadku C mogła prowadzić do sporych trudności przy przenoszeniu programów
pomiędzy różnymi platformami. Zakresy poszczególnych typów danych oraz ilość bi-
tów niezbędna do zapisanie zmiennych danego typu prezentuje tabela 2.1.
Tabela 2.1. Zakresy typów arytmetycznych w Javie
Typ
,8/
7368
28
321
Liczba
bitów
Liczba
bajtów
Zakres
8
16
32
64
1
2
4
8
od –128 do 127
od –32 768 do 32 767
od –2 147 483 648 do 2 147 483 647
od –9 223 372 036 854 775 808 do 9 223 372 036 854 775 807
Typ -+6 służy do reprezentacji znaków, przy czym w Javie jest on 16-bitowy i zawiera
znaki Unicode. (Unicode to standard pozwalający na zapisanie znaków występujących
większości języków świata).
Typy zmiennoprzecinkowe występują tylko w dwóch odmianach:
(cid:1)
03+8 (pojedynczej precyzji),
(cid:1)
.39,/ (podwójnej precyzji).
Zakres oraz liczbę bitów i bajtów potrzebnych do zapisu tych zmiennych prezentuje ta-
bela 2.2.
Tabela 2.2. Zakresy dla typów zmiennoprzecinkowych w Javie
Typ
Liczba bitów
Liczba bajtów
Zakres
03+8
.39,/
32
64
4
8
od –3,4e38 do 3,4e38
od –1,8e308 do 1,8e308
Format danych 03+8 i .39,/ jest zgodny z ze specyfikacja standardu ANSI/IEEE 754.
Zapis 3,4e48 oznacza 3,4 razy 10 do potęgi 38.
Aby móc użyć jakiejś zmiennej w programie, wpierw trzeba ją zadeklarować, tzn. po-
dać jej typ oraz nazwę. Ogólna deklaracja wygląda w sposób następujący:
84)/22/2+;+)/22/
Po takim zadeklarowaniu zmienna jest już gotowa do użycia, tzn. możemy jej przypi-
sywać różne wartości, bądź też wykonywać na niej różne operacje np. dodawanie.
Rozdział 2. (cid:1) Zmienne, operatory i instrukcje
19
Ćwiczenie 2.1.
Zadeklaruj dwie zmienne całkowite, przypisz im dowolne wartości. Wyświetl wyniki na
ekranie (rysunek 2.1).
49,-
-+77+2
49,-78+8-:3.+2(cid:25)#8621+617(cid:31)
284/6;7+-,+
28.691+-,+
4/6;7+-,+
.691+-,+
#78/
398
46282(cid:25)4/6;7+-,+(4/6;7+-,+(cid:31)
#78/
398
46282(cid:25).691+-,+(.691+-,+(cid:31)
Rysunek 2.1.
Wynik działania
programu
z ćwiczenia 2.1
Instrukcja #78/
398
46282(cid:29)(cid:30) pozwala wyprowadzenie ciągu znaków na ekran. War-
tość zmiennej można przypisać już w trakcie deklaracji, pisząc:
84)/22/2+;+)/22/;+683
Można również zadeklarować wiele zmiennych danego typu oddzielając ich nazwy
przecinkami. Część z nich może też być od razu zainicjalizowana:
84)/22/2+;+
,2+;+,2+;+
84)/22/2+;+
;+683
,2+;+,2+;+;+683
Zmiennej w Javie, podobnie jak w C, czy C++, ale inaczej niż w Pascalu, można dekla-
rować w dowolnym miejscu funkcji czy metody.
Ćwiczenie 2.2.
Zadeklaruj i jednocześnie zainicjalizuj dwie zmienne typu całkowitego. Wynik wyświetl
na ekranie.
49,-
-+77+2
49,-78+8-:3.+2(cid:25)#8621+617(cid:31)
20
Część I (cid:1) Język programowania
284/6;7+-,+
28.691+-,+
#78/
398
46282(cid:25)4/6;7+-,+(4/6;7+-,+(cid:31)
#78/
398
46282(cid:25).691+-,+(.691+-,+(cid:31)
Ćwiczenie 2.3.
Zadeklaruj kilka zmiennych typu całkowitego w jednym wierszu. Kilka z nich zainicjalizuj.
49,-
-+77+2
49,-78+8-:3.+2(cid:25)#8621+617(cid:31)
284/6;7+-,+
,.691+-,+,,,
#78/
398
46282(cid:25)4/6;7+-,+(4/6;7+-,+(cid:31)
#78/
398
46282(cid:25).691+-,+(.691+-,+(cid:31)
#78/
398
46282(cid:25)/22+((cid:31)
#78/
398
46282(cid:25)/22+((cid:31)
#78/
398
46282(cid:25)/22+((cid:31)
Przy nazywaniu zmiennych obowiązują pewne zasady. Otóż nazwa taka może składać
się z dużych i małych liter oraz cyfr, ale nie może się zaczynać od cyfry. Nie należy
również stosować polskich znaków diakrytycznych. Nazwa zmiennej powinna także
odzwierciedlać funkcję pełnioną w programie. Np. jeżeli określa ona liczbę punktów
w jakimś zbiorze, to najlepiej ją nazwać -,+ 9283; lub nawet -,+ 9283; ,3(cid:9)
6/. Mimo że tak długa nazwa może wydawać się dziwna, jednak bardzo poprawia
czytelność programu oraz ułatwia jego analizę. Naprawdę warto ten sposób stosować.
Przyjmuje się też, co również jest bardzo wygodne, że nazwę zmiennej rozpoczynamy
małą literą, a poszczególne człony tej nazwy (wyrazy, które się na nią składają) piszemy
literą wielką. Dokładnie tak jak w powyższych przykładach.
Typy odnośnikowe (ang. reference types) dzielą się na trzy rodzaje:
(cid:1)
typy klasowe (class types),
(cid:1)
typy interfejsowe (interface types),
(cid:1)
typy tablicowe (array types).
Interfejsami nie będziemy się zajmować. Zacznijmy od typów tablicowych. Tablice są
to wektory elementów danego typu i służą do uporządkowanego przechowywania war-
tości tego typu. Mogą być jedno bądź wielowymiarowe. Dostęp do danego elementu ta-
blicy jest realizowany poprzez podanie jego indeksu, czyli miejsca w tablicy w którym
Rozdział 2. (cid:1) Zmienne, operatory i instrukcje
21
się on znajduje. Dla tablicy jednowymiarowej będzie to po prostu kolejny numer ele-
mentu, dla tablicy dwuwymiarowej trzeba już podać numer wiersza i kolumny itd. Jeśli
chcemy zatem przechować w programie 10 liczb całkowitych, najwygodniej będzie użyć
w tym celu 10-elementową tablicę typu 28.
Typy klasowe pozwalają na deklarowanie zmiennych obiektowych. Zajmiemy się nimi
bliżej w rozdziale 3.
Zmienne typów odnośnikowych deklarujemy podobnie jak w przypadku zmiennych ty-
pów podstawowych tzn. pisząc:
84)/22/2+;+)/22/
lub
84)/22/2+;+)/22/)
,2+;+)/22/),2+;+)/22/)
Pisząc w ten sposób zdeklarowaliśmy jednak jedynie tzw. odniesienie (ang. reference)
do zmiennej obiektowej, a nie samą zmienną! Takiemu odniesieniu przypisana jest do-
myślnie wartość pusta (29). Czyli praktycznie nie możemy wykonywać na niej żadnej
operacji. Dopiero po utworzeniu odpowiedniego obiektu w pamięci możemy powiązać
go z tak zadeklarowana zmienną. Jeśli zatem napiszemy np.
28+
mamy gotową do użycia zmienną typu całkowitego. Możemy jej przypisać np. wartość 10.
Żeby jednak móc skorzystać z tablicy musimy zadeklarować zmienną odnośnikową ty-
pu tablicowego, utworzyć obiekt tablicy i powiązać go ze zmienną. Dopiero wtedy bę-
dziemy mogli swobodnie odwoływać się do kolejnych elementów. Pisząc zatem:
288+,-+
zadeklarujemy odniesienie do tablicy, która będzie zawierała elementy typu 28, czyli
32-bitowe liczby całkowite. Samej tablicy jednak jeszcze wcale nie ma. Przekonamy się
o tym wykonując kolejne ćwiczenia.
Ćwiczenie 2.4.
Zadeklaruj tablicę elementów typu całkowitego. Przypisz zerowemu elementowi tablicy
dowolna wartość. Spróbuj wyświetlić zawartość tego elementu na ekranie.
49,-
-+77+2
49,-78+8-:3.+2(cid:25)#8621+617(cid:31)
288+,-+
8+,-+
#78/
398
46282(cid:25)/63;///288+,-83(8+,-+(cid:31)
22
Rysunek 2.2.
Błąd kompilacji.
Nie zainicjowaliśmy
zmiennej tablica
Część I (cid:1) Język programowania
Już przy próbie kompilacji kompilator uprzejmie poinformuje nas, że chcemy odwołać
się do zmiennej, która prawdopodobnie nie została zainicjalizowana wypisując na ekran
+6+,/8+,-++238+:/,//228+/. (rysunek 2.2). Widzimy też wyraź-
nie, że w razie wystąpienia błędu na etapie kompilacji, otrzymujemy kilka ważnych
i pomocnych informacji. Przede wszystkim jest to nazwa pliku, w którym wystąpił błąd
(jest to ważne, gdyż program może składać się bardzo wielu klas, a każda z nich jest de-
finiowana w oddzielnym pliku), numer wiersza w tym pliku oraz konkretne miejsce wy-
stąpienia błędu. Na samym końcu kompilator podaje też całkowitą liczbę błędów.
Pobierz darmowy fragment (pdf)