Spis treści - Edition2000

Transkrypt

Spis treści - Edition2000
Spis treœci
1 Podstawy Javy ............................................................................................................................. 1
Pocz¹tki Javy............................................................................................................................. 2
Relacja Javy z C i C++ ..................................................................................................... 4
Wk³ad Javy dla Internetu ....................................................................................................... 5
Aplety Javy i Aplikacje ...................................................................................................... 5
Bezpieczeñstwo .................................................................................................................. 6
Przenoszenie ....................................................................................................................... 6
Magia Javy: Bytecode.............................................................................................................. 7
Slogany Javy ............................................................................................................................. 8
Programowanie Zorientowane Obiektowo .........................................................................
(OOP Object Oriented Programming) ....................................................................... 10
Enkapsulacja (kapsu³kowoœæ) ....................................................................................... 11
Dziedziczenie. ................................................................................................................... 13
Zdobycie pakietu Java Developer’s Kit............................................................................. 14
Pierwszy program przyk³adowy ........................................................................................ 15
Edycja programu............................................................................................................. 15
Kompilowanie programu .............................................................................................. 16
Pierwszy program przyk³adowy linijka po linijce ...................................................... 17
Obs³uga b³êdów sk³adni ..................................................................................................... 20
Drugi program przyk³adowy .............................................................................................. 21
Inne typy danych .................................................................................................................... 24
Dwie instrukcje kontrolne ................................................................................................... 27
vi
Java 2 - KURS PODSTAWOWY
Instrukcja if ....................................................................................................................... 27
Pêtla for ............................................................................................................................. 30
Korzystanie z bloków kodu ................................................................................................ 32
Œredniki i umiejscawianie...................................................................................................... 33
Stosowanie wciêæ ................................................................................................................... 35
S³owa kluczowe Javy ....................................................................................................... 37
Identyfikatory ......................................................................................................................... 38
Biblioteka klas Javy ................................................................................................................ 39
2 Wprowadzenie do typów danych i operatorów ................................................................. 41
Dlaczego typy danych s¹ takie
wa¿ne?..................................................................................... ................................... 42
Typy proste Javy..................................................................................................................... 42
Liczby ca³kowite .............................................................................................................. 43
Typy zmiennoprzecinkowe .................................................................................................. 45
Znaki ........................................................................................................................................ 46
Typ boolean ............................................................................................................................ 48
Sta³e ......................................................................................................................................... 51
Sta³e heksadecymalne i oktalne ..................................................................................... 51
Sekwencje znakowe (Escape Sequences) ..................................................................... 52
Sta³e tekstowe .................................................................................................................. 53
Wiêcej wiadomoœci o zmiennych ........................................................................................ 54
Inicjowanie zmiennych .................................................................................................... 55
Dynamiczne inicjalizacje ................................................................................................. 55
Zakres wa¿noœci i czas ¿ycia zmiennej ............................................................................... 56
Operatory ............................................................................................................................... 60
Operatory arytmetyczne ....................................................................................................... 60
Inkrementacja i dekrementacja ...................................................................................... 62
Operatory porównania i logiczne ...................................................................................... 63
Skrócone operatory logiczne ......................................................................................... 65
Operator przypisania ............................................................................................................ 68
Skrócone przypisania ...................................................................................................... 69
Konwersja typów przy przypisaniu .............................................................................. 70
Rzutowanie niekompatybilnych typów (casting) .............................................................. 72
Pierwszeñstwo operatorów ................................................................................................. 74
Wyra¿enia ................................................................................................................................ 77
Konwersja typów w wyra¿eniu ...................................................................................... 77
Odleg³oœci i nawiasy ........................................................................................................ 79
Spis treœci
3 Instrukcje kontrolne programu ............................................................................................ 83
Wprowadzanie znaków z klawiatury .................................................................................. 84
Instrukcja if ............................................................................................................................. 86
Zagnie¿d¿one instrukcje if ............................................................................................. 88
Drabinka if-else-if ............................................................................................................ 89
Instrukcja warunkowa switch ................................................................................................. 91
Zagnie¿d¿one instrukcje switch. ................................................................................... 95
Pêtla for .................................................................................................................................. 99
Ró¿ne odmiany pêtli for. .............................................................................................. 101
Brakuj¹ce pola ................................................................................................................ 103
Pêtla bez cia³a ................................................................................................................ 105
Deklarowanie zmiennych kontrolnych wewn¹trz pêtli ............................................ 106
Pêtla while ............................................................................................................................. 107
Pêtla do-while ...................................................................................................................... 109
Wychodzenie z pêtli przy u¿yciu komendy break .......................................................... 115
U¿ycie break jako formy instrukcji goto ......................................................................... 117
Komenda continue .............................................................................................................. 122
Zagnie¿d¿one pêtle ............................................................................................................. 128
4 Wprowadzenie do klas, obiektów oraz metod ................................................................ 133
Podstawy klas ....................................................................................................................... 134
Ogólna forma klasy ....................................................................................................... 134
Definiowanie klasy ......................................................................................................... 135
Jak tworzone s¹ obiekty ...................................................................................................... 140
Zmienne referencyjne i przypisanie .................................................................................. 141
Metody .................................................................................................................................. 142
Dodanie metod do klasy Vehicle ................................................................................ 143
Powrót z metody ........................................................................................................... 146
Zwracanie wartoœci ....................................................................................................... 147
U¿ywanie parametrów .................................................................................................. 149
Dodanie sparametryzowanej metody do klasy Vehicle .......................................... 151
Konstruktory ....................................................................................................................... 160
Konstruktor z parametrem ......................................................................................... 162
Dodanie konstruktora do klasy Vehicle .................................................................... 163
Operator new ....................................................................................................................... 165
Sprz¹tanie œmieci i finalizatory .......................................................................................... 166
Metoda finalize() ............................................................................................................ 166
S³owo kluczowe this ........................................................................................................... 170
vii
viii
Java 2 - KURS PODSTAWOWY
5 Wiêcej o typach danych i operatorach................................................................................ 175
Tablice ................................................................................................................................... 176
Jednowymiarowe tablice ............................................................................................... 176
Wielowymiarowe tablice .................................................................................................... 183
Dwuwymiarowe tablice ................................................................................................ 183
Tablice nieregularne ...................................................................................................... 184
Tablice trój- lub wiêcej wymiarowe ............................................................................ 187
Inicjowanie wielowymiarowych tablic ........................................................................ 187
Alternatywna sk³adnia deklaracji tablic ........................................................................... 189
Przypisywanie referencji od tablicy .................................................................................. 190
Korzystanie ze sk³adnika lenght........................................................................................ 191
£añcuchy tekstowe (Stringi) ............................................................................................... 199
Tworzenie Stringów ...................................................................................................... 199
Operacje na Stringach ................................................................................................... 201
Tablice Stringów ............................................................................................................ 203
Niezmiennoœæ ³añcuchów tekstowych ........................................................................ 204
U¿ywanie argumentów z linii komend ....................................................................... 205
Operatory bitowe ................................................................................................................ 207
Operatory bitowe AND, OR, XOR i NOT. ............................................................ 208
Operatory przesuniêæ ................................................................................................... 213
Skrócone przypisania bitowe ....................................................................................... 216
Operator ? ............................................................................................................................ 220
6 Bli¿sze spojrzenie na klasy i metody ................................................................................... 225
Kontrola dostêpu do sk³adników klasy .......................................................................... 226
Specyfikatory dostêpu Javy .......................................................................................... 227
Przesy³anie obiektów do metod ....................................................................................... 234
W jaki sposób przesy³ane s¹ argumenty .................................................................... 235
Zwracanie obiektów ........................................................................................................... 238
Prze³adowywanie metod .................................................................................................... 241
Prze³adowywanie konstruktorów..................................................................................... 248
Rekurencja ............................................................................................................................ 254
Zrozumienie modyfikatora static ..................................................................................... 257
Statyczne bloki ............................................................................................................... 260
Wprowadzenie do zagnie¿d¿onych i wewnêtrznych klas.............................................. 265
7 Dziedziczenie ......................................................................................................................... 271
Podstawy dziedziczenia ...................................................................................................... 272
Dostêp do sk³adników i dziedziczenie ...................................................................... 275
Spis treœci
Konstruktory i dziedziczenie ............................................................................................ 279
U¿ycie super do wywo³ania konstruktora klasy nadrzêdnej .................................. 281
U¿ycie super dla dostêpu do sk³adników klasy nadrzêdnej ......................................... 286
Tworzenie wielopoziomowych hierarchii klas ................................................................ 291
Kiedy wywo³ywane s¹ konstruktory?............................................................................... 294
Referencje od klasy nadrzêdnej i obiekty podklas ......................................................... 296
Przykrywanie metod ........................................................................................................... 302
Przykrywanie metod wspiera polimorfizm ..................................................................... 305
Dlaczego w³aœnie przykrywanie metod? .................................................................... 307
Dodawanie przykrywania metod do klasy TwoDShape ......................................... 307
Korzystanie z klas abstrakcyjnych .................................................................................... 312
U¿ycie final ........................................................................................................................... 317
final zapobiega przykrywaniu ...................................................................................... 317
final zapobiega dziadzieniu .......................................................................................... 318
U¿ycie final razem z sk³adnikami danych .................................................................. 318
Klasa Object......................................................................................................................... 320
8 Pakiety i Interfejsy .................................................................................................................. 323
Pakiety ................................................................................................................................... 324
Definiowane pakietu ..................................................................................................... 325
Odnajdywanie pakietów oraz zmienna CLASSPATH ............................................ 326
Krótki przyk³ad pakietu ............................................................................................... 327
Pakiety oraz dostêp do danych ......................................................................................... 328
Przyk³ad dostêpu do pakietu ...................................................................................... 330
Zrozumienie sk³adników chronionych (protected) ................................................. 332
Importowanie pakietów ..................................................................................................... 335
Biblioteka klas Javy wewn¹trz pakietów .......................................................................... 337
Interfejsy................................................................................................................................ 338
Implementacja interfejsu .............................................................................................. 339
Korzystanie z referencji do interfejsu ........................................................................ 343
Zmienne w interfejsie .................................................................................................... 353
Poszerzanie interfejsu .................................................................................................... 354
9 Obs³uga wyj¹tków ................................................................................................................. 357
Hierarchia wyj¹tków ........................................................................................................... 358
Podstawy obs³ugi wyj¹tków .............................................................................................. 359
U¿ycie try i catch ............................................................................................................ 359
Prosty przyk³ad wyj¹tku ............................................................................................... 360
Konsekwencje niewychwyconego wyj¹tku ................................................................ 363
ix
x
Java 2 - KURS PODSTAWOWY
Wyj¹tki pozwalajce na eleganck¹ obs³ugê b³êdów................................................... 365
U¿ycie wielu instrukcji catch.............................................................................................. 367
Przechwytywanie wyj¹tków podklas .......................................................................... 368
Bloki try mog¹ byæ zagnie¿d¿one ..................................................................................... 369
Zg³aszanie wyj¹tków ........................................................................................................... 371
Przerzucanie wyj¹tków ................................................................................................. 373
Klasa Throwable ................................................................................................................. 374
Instrukcja finally................................................................................................................... 376
U¿ycie throws ....................................................................................................................... 379
Wbudowane wyj¹tki Javy.................................................................................................... 381
Tworzenie podklas wyj¹tków ............................................................................................ 383
10 Korzystanie z operacji wejœcia/wyjœcia I/O .................................................................... 391
Strumieñ (stream) jako podstawy systemu I/O Javy ..................................................... 392
Strumienie bajtowe i znakowe ..................................................................................... 393
Klasy strumieni bajtów ................................................................................................. 393
Klasy strumieni znaków ............................................................................................... 394
Korzystanie ze strumieni bajtów ...................................................................................... 396
Predefiniowane strumienie .......................................................................................... 396
Odczytywanie z wejœcia konsolowego ....................................................................... 397
Zapis do konsolowego wyjœcia ................................................................................... 400
Odczyt i zapis do pliku przy u¿yciu strumieni bajtów .................................................. 401
Odczyt z pliku ................................................................................................................ 401
Zapis do pliku ................................................................................................................ 403
Odczyt i zapis danych binarnych ................................................................................. 406
Pliki o dostêpie swobodnym ............................................................................................. 413
Korzystanie ze strumieni znakowych Javy ....................................................................... 416
Odczytywanie z wejœcia konsoli przy u¿yciu strumieni znakowych ...................... 418
Wypisywanie na konsole przy u¿yciu strumieni znakowych.......................................
421
Operacje I/O na pliku przy u¿yciu strumieni znakowych ...................................... 423
Korzystanie z opakowywaczy typów Javy do konwersji stringów numerycznych... 426
11 Programowanie wielow¹tkowe .......................................................................................... 439
Podstawy wielow¹tkowoœci ............................................................................................... 440
Klasa Thread oraz interfejs Runnable .............................................................................. 441
Tworzenie w¹tku .................................................................................................................. 442
Proste ulepszenia ........................................................................................................... 446
Tworzenie wielu w¹tków .................................................................................................... 452
Spis treœci
Okreœlanie kiedy w¹tek siê koñczy ................................................................................... 455
Priorytet w¹tków ................................................................................................................. 459
Synchronizacja...................................................................................................................... 463
Korzystanie z synchronizowanych metod ................................................................. 464
Instrukcja synchronized ................................................................................................ 467
Komunikacja miêdzy w¹tkami przy u¿yciu metod notify(), wait() oraz notifyAll() . 470
Przyk³ad korzystaj¹cy z metod wait() i notify() ........................................................ 471
Zawieszanie, wznawianie oraz zatrzymywanie w¹tków. ................................................ 477
12 Aplety, Zdarzenia, oraz rozmaite tematy ......................................................................... 487
Podstawy apletów................................................................................................................ 488
Organizacja apletu oraz podstawowe elementy ............................................................. 492
Architektura apletu ....................................................................................................... 492
Kompletny szkielet apletu ........................................................................................... 493
Inicjalizacja apletów i koñczenie ................................................................................. 494
¯¹danie odœwie¿ania okna ................................................................................................. 496
Metoda update() ............................................................................................................ 497
Korzystanie z okna statusowego ...................................................................................... 503
Przesy³anie parametrów do apletu ................................................................................... 504
Klasa Applet ........................................................................................................................ 506
Obs³uga zdarzeñ .................................................................................................................. 509
Model przesy³ania zdarzeñ ................................................................................................ 510
Zdarzenia ........................................................................................................................ 510
ród³a zdarzeñ .............................................................................................................. 510
Odbiorniki zdarzeñ ....................................................................................................... 511
Klasy zdarzeñ ................................................................................................................. 511
Interfejsy odbiorników zdarzenia ............................................................................... 512
Korzystanie z modelu przesy³ania zdarzeñ ..................................................................... 513
Obs³uga zdarzeñ myszy ................................................................................................ 515
Prosty aplet obs³uguj¹cy zdarzenia myszy. ............................................................... 516
Wiêcej s³ów kluczowych Javy ............................................................................................ 519
Modyfikatory transient i volatile ................................................................................. 519
instanceof ........................................................................................................................ 520
strictfp ................................................................................................................................... 521
Rdzenne metody .................................................................................................................. 521
Co dalej? ............................................................................................................................... 522
xi
xii
Java 2 - KURS PODSTAWOWY
A Odpowiedzi do G³ównego Sprawdzianu Wiadomoœci .................................................. 525
Rozdzia³ 1: Podstawy Javy ........................................................................................... 526
Rozdzia³ 2: Wprowadzenie do typów danych i operatorów ................................. 528
Rozdzia³ 3: Instrukcje kontrolne programu ............................................................. 530
Rozdzia³ 4: Wprowadzenie do klas obiektów oraz metod .................................... 534
Rozdzia³ 5: Wiêcej o typach danych i operatorach ................................................. 535
Rozdzia³ 6: Bli¿sze spojrzenie na klasy i metody ..................................................... 538
Rozdzia³ 7: Dziedziczenie ............................................................................................ 543
Rozdzia³ 8: Pakiety i interfejsy .................................................................................... 545
Rozdzia³ 9: Obs³uga wyj¹tków ................................................................................... 547
Rozdzia³ 10: Korzystanie z operacji wejœcia/wyjœcia I/O ..................................... 550
Rozdzia³ 11: Programowanie wielow¹tkowe ........................................................... 554
Rozdzia³ 12: Aplety, zdarzenia i rozmaite tematy ................................................... 556
B Korzystanie z komentarzy dokumentacji Javy ................................................................. 563
Identyfikatory javadoc ........................................................................................................ 564
@author .......................................................................................................................... 565
@deprecated .................................................................................................................. 565
{@docRoot} ................................................................................................................. 566
@exception .................................................................................................................... 566
{@link} ........................................................................................................................... 566
@param .......................................................................................................................... 566
@return ........................................................................................................................... 567
@see ................................................................................................................................ 567
@serial ............................................................................................................................ 567
@serialData .................................................................................................................... 568
@serialField ................................................................................................................... 568
@since ............................................................................................................................. 568
@throws ......................................................................................................................... 568
@version ......................................................................................................................... 568
Ogólna forma komentarzy dokumentacji ....................................................................... 569
Co generuje program javadoc ?........................................................................................ 569
Przyk³ad korzystaj¹cy z komentarzy dokumentacji....................................................... 570
Wstêp
Na przestrzeni kilku minionych lat, Java od wzglêdnie niejasnego jêzyka sta³a siê
najbardziej znacz¹cym jêzykiem programowania dla Internetu. Wp³yw Javy nie mo¿e byæ
kwestionowany. Zmieni³a ona sieæ w wysoce interaktywne œrodowisko, ustanawiaj¹c
nowy standard w jêzyku programowania. Nowatorskie aspekty Javy ustanowi³y now¹
drogê w programowaniu jeszcze na d³ugie lata. Tak wiêc, je¿eli programowanie dla
Internetu jest Twoj¹ przysz³oœci¹, wybra³eœ w³aœciwy jêzyk do nauki – w czym pomo¿e
Ci ta ksi¹¿ka.
Przeznaczeniem tej pozycji jest nauczenie Ciê podstaw programowania w Javie.
Korzysta ona z podejœcia krok-po-kroku wraz z licznymi przyk³adami, testami oraz
projektami. Nie jest wymagane wczeœniejsze doœwiadczenie programistyczne; w tej
ksi¹¿ce zaczynamy od podstaw, np. jak kompilowaæ i uruchamiaæ programy Java.
Nastêpnie omówimy ka¿de s³owo kluczowe jêzyka Java. Poznamy niektóre najbardziej
zaawansowane zagadnienia, takie jak np. wielow¹tkowoœæ oraz tworzenie apletów. Po
zakoñczeniu, bêdziesz mia³ solidne wiadomoœci na temat istoty programowania w Java.
Wa¿ne, jest aby powiedzieæ, ¿e niniejsza ksi¹¿ka jest tylko punktem startowym.
Java to znacznie wiêcej ni¿ tylko elementy definiuj¹ce jêzyk, ale tak¿e obejmuje
rozszerzone biblioteki oraz narzêdzia wspomagaj¹ce tworzenie oprogramowania.
Ponadto Java oferuje wyszukany zestaw bibliotek obs³uguj¹cych interfejs przegl¹darki
u¿ytkownika. Bycie programist¹ „na topie” wymaga tak¿e doskona³ej znajomoœci tych
dziedzin. Po przeczytaniu tej ksi¹¿ki bêdziesz posiadaæ podstawow¹ wiedzê pozwalaj¹c¹
Ci na zg³êbienie pozosta³ych aspektów Javy.