Spis treści - Edition2000
Transkrypt
Spis treści - Edition2000
Spis treci 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 Developers 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 wiadomoci o zmiennych ........................................................................................ 54 Inicjowanie zmiennych .................................................................................................... 55 Dynamiczne inicjalizacje ................................................................................................. 55 Zakres wa¿noci 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³oci i nawiasy ........................................................................................................ 79 Spis treci 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 wartoci ....................................................................................................... 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 treci 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³anie 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 wejcia/wyjcia 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 wejcia konsolowego ....................................................................... 397 Zapis do konsolowego wyjcia ................................................................................... 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 wejcia 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¹tkowoci ............................................................................................... 440 Klasa Thread oraz interfejs Runnable .............................................................................. 441 Tworzenie w¹tku .................................................................................................................. 442 Proste ulepszenia ........................................................................................................... 446 Tworzenie wielu w¹tków .................................................................................................... 452 Spis treci Okrelanie 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 odwie¿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 Wiadomoci .................................................. 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 wejcia/wyjcia 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³oci¹, wybra³e w³aciwy 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 podejcia krok-po-kroku wraz z licznymi przyk³adami, testami oraz projektami. Nie jest wymagane wczeniejsze dowiadczenie 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 wiadomoci 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 znajomoci tych dziedzin. Po przeczytaniu tej ksi¹¿ki bêdziesz posiadaæ podstawow¹ wiedzê pozwalaj¹c¹ Ci na zg³êbienie pozosta³ych aspektów Javy.