Thinking in Java Wydanie 3 Edycja polska.pdf

(2241 KB) Pobierz
C:\Andrzej\PDF\ABC nagrywania p³yt CD\1 strona.cdr
IDZ DO
PRZYK£ADOW Y ROZDZIA£
Thinking in Java.
SPIS TRECI
Wydanie 3. Edycja polska
KATALOG KSI¥¯EK
Autor: Bruce Eckel
T³umaczenie: Adrian Nowak,
Szymon Kobalczyk, £ukasz Fryz
ISBN: 83-7361-133-9
Format: B5, stron: 912
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Ksi¹¿ka „Thinking in Java” wzbudzi³a entuzjazm i uznanie programistów na ca³ym wiecie
przede wszystkim dziêki swej wyj¹tkowej przejrzystoci, przemylanej i uwa¿nej organizacji
oraz krótkim, trafnie dobranym przyk³adom. Ksi¹¿ka obejmuje szeroki zakres tematów —
zaczynaj¹c od podstaw sk³adni Javy, a koñcz¹c na najbardziej zaawansowanych
zagadnieniach (dok³adny opis pojêæ obiektowych, wielow¹tkowoci, zautomatyzowane
konstruowanie, testowanie modu³ów oraz wykrywanie i usuwanie b³êdów).
• Wprowadzenie do jêzyka Java uaktualnione o prezentacjê nowych mo¿liwoci
wprowadzonych w JDK 1.4
• Nowy program testowy weryfikuj¹cy poprawnoæ dzia³ania ka¿dego z programów
i prezentuj¹cy generowane przez niego wyniki
• Nowy rozdzia³ powiêcony testowaniu modu³ów, zautomatyzowanemu
konstruowaniu programów, asercjom, rejestracji oraz innym sposobom
zapewniania poprawnoci programów
• Ca³kowicie zmodyfikowany rozdzia³ powiêcony wielow¹tkowoci pozwalaj¹cy
dobrze poznaæ podstawy tego zagadnienia
• Ponad 350 dzia³aj¹cych przyk³adów uaktualnionych z myl¹ o niniejszym
wydaniu ksi¹¿ki; ponad 15 tysiêcy wierszy kodu
• Ksi¹¿ka zarówno dla pocz¹tkuj¹cych, jak i ekspertów
• Uczy jêzyka Java, a nie rozwi¹zañ zale¿nych od platformy systemowej
• Szczegó³owo omawia podstawowe zagadnienia, nie pomija bardziej
zaawansowanych
• Dog³êbnie wyjania zasady obiektowoci oraz ich zastosowanie w Javie
Bruce Eckel jest prezesem MindView, Inc., firmy prowadz¹cej zarówno otwarte jak
i zamkniête kursy treningowe; zajmuj¹cej siê te¿ doradztwem, nadzorem i kontrol¹ nad
projektami zwi¹zanymi z technologiami obiektowymi i wzorcami projektowymi.
Jest autorem ksi¹¿ki „Thinking in C++” oraz wspó³autorem ksi¹¿ek „Thinking in C#” oraz
„Thinking in C++, Volume 2”, napisa³ tak¿e kilka innych ksi¹¿ek i ponad 150 artyku³ów.
Od ponad 20 lat prowadzi wyk³ady i seminaria na ca³ym wiecie. By³ cz³onkiem Komitetu
Standardów C++. Zdoby³ tytu³ naukowy w dziedzinie fizyki stosowanej i in¿ynierii
oprogramowania.
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
329247114.001.png 329247114.002.png 329247114.003.png
Spis treci
Podzikowania ......................................................................................17
Przedmowa............................................................................................21
Przedmowa do wydania trzeciego.............................................................................................23
Java 2, JDK 1.4 .........................................................................................................................25
Wprowadzenie.......................................................................................27
Warunki wst pne.......................................................................................................................27
Nauka Javy................................................................................................................................28
Cele ...........................................................................................................................................29
Dokumentacja online ................................................................................................................29
Zawarto*+ rozdziałów ...............................................................................................................30
/wiczenia..................................................................................................................................35
Kody 0ródłowe..........................................................................................................................35
Konwencje zapisu...............................................................................................................37
Wersje Javy...............................................................................................................................37
Bł dy.........................................................................................................................................37
Projekt okładki..........................................................................................................................38
Rozdział 1. Wprowadzenie w wiat obiektów............................................................39
Post puj2ca abstrakcja ..............................................................................................................40
Obiekt posiada interfejs ............................................................................................................41
Obiekt dostarcza usług..............................................................................................................44
Ukrywanie implementacji.........................................................................................................45
Wielokrotne wykorzystanie implementacji ..............................................................................46
Dziedziczenie: wielokrotne u9ycie interfejsu ...........................................................................47
„Bycie czym*” a „bycie podobnym do czego*” .................................................................50
Wymienialno*+ obiektów z u9yciem polimorfizmu .................................................................51
Abstrakcyjne klasy bazowe i interfejsy ..............................................................................54
Tworzenie obiektów, sposób ich stosowania i czas 9ycia ........................................................55
Kolekcje i iteratory .............................................................................................................56
Hierarchia z pojedynczym korzeniem ................................................................................57
Rzutowanie w dół kontra wzorce (generalia) .....................................................................58
Zapewnienie odpowiedniego „sprz2tania” .........................................................................59
Obsługa wyj2tków — eliminowanie bł dów............................................................................60
Współbie9no*+ ..........................................................................................................................61
Trwało*+....................................................................................................................................62
Java i Internet............................................................................................................................63
Czym jest Internet?.............................................................................................................63
Programowanie po stronie klienta ......................................................................................64
 
6
Thinking in Java. Edycja polska
Programowanie po stronie serwera.....................................................................................70
Aplikacje.............................................................................................................................71
Dlaczego Java odnosi sukcesy..................................................................................................71
Systemy jest łatwiej opisa+ i zrozumie+ .............................................................................71
Maksymalne zwi kszenie wydajno*ci dzi ki bibliotekom.................................................72
Obsługa bł dów ..................................................................................................................72
Programowanie na wielk2 skal .........................................................................................72
Java kontra C++ ........................................................................................................................73
Podsumowanie ..........................................................................................................................74
Rozdział 2. Wszystko jest obiektem.........................................................................75
Dost p do obiektów poprzez referencje....................................................................................75
Wszystkie obiekty trzeba stworzy+...........................................................................................76
Gdzie przechowujemy dane................................................................................................77
Przypadek specjalny: typy podstawowe .............................................................................78
Tablice w Javie ...................................................................................................................79
Nigdy nie ma potrzeby niszczenia obiektu ...............................................................................80
Zasi g..................................................................................................................................80
Zasi g obiektów..................................................................................................................81
Tworzenie nowych typów danych — klasa..............................................................................82
Pola i metody......................................................................................................................82
Metody, argumenty i warto*ci zwracane ..................................................................................84
Lista argumentów ...............................................................................................................85
Tworzenie programu w Javie....................................................................................................86
Widoczno*+ nazw ...............................................................................................................86
Wykorzystanie innych komponentów ................................................................................86
Słowo kluczowe static ........................................................................................................87
Twój pierwszy program w Javie...............................................................................................89
Kompilacja i uruchomienie.................................................................................................90
Komentarze oraz dokumentowanie kodu..................................................................................91
Dokumentacja w komentarzach..........................................................................................91
Składnia ..............................................................................................................................92
Osadzony HTML................................................................................................................93
Niektóre znaczniki dokumentacyjne...................................................................................93
Przykład dokumentowania kodu.........................................................................................96
Styl programowania..................................................................................................................96
Podsumowanie ..........................................................................................................................97
/wiczenia..................................................................................................................................97
Rozdział 3. Sterowanie kolejnoci$ wykonania.........................................................99
U9ywanie operatorów Javy.......................................................................................................99
Kolejno*+..........................................................................................................................100
Przypisanie........................................................................................................................100
Operatory matematyczne..................................................................................................103
Operatory zwi kszania i zmniejszania..............................................................................106
Operatory relacji ...............................................................................................................107
Operatory logiczne............................................................................................................109
Operatory bitowe ..............................................................................................................111
Operatory przesuni cia .....................................................................................................112
Operator trójargumentowy if-else.....................................................................................115
Przecinek...........................................................................................................................116
ŁaMcuchowy operator +....................................................................................................116
Najcz stsze pułapki przy u9ywaniu operatorów...............................................................117
Operatory rzutowania .......................................................................................................117
W Javie nie ma „sizeof” ...................................................................................................120
Spis treci
7
Powtórka z kolejno*ci operatorów....................................................................................120
Kompendium operatorów .................................................................................................121
Sterowanie wykonaniem.........................................................................................................129
Prawda i fałsz....................................................................................................................129
if-else ................................................................................................................................129
return.................................................................................................................................130
Iteracja ..............................................................................................................................131
do-while............................................................................................................................132
for......................................................................................................................................132
break i continue.................................................................................................................134
switch................................................................................................................................139
Podsumowanie ........................................................................................................................143
/wiczenia................................................................................................................................143
Rozdział 4. Inicjalizacja i sprz$tanie.......................................................................145
Gwarantowana inicjalizacja przez konstruktor.......................................................................145
Przeci29anie metod .................................................................................................................147
Rozró9nianie przeci29onych metod..................................................................................150
Przeci29anie a typy podstawowe ......................................................................................150
Przeci29anie przez warto*ci zwracane..............................................................................155
Konstruktory domy*lne ....................................................................................................155
Słowo kluczowe this.........................................................................................................156
Sprz2tanie: finalizacja i od*miecanie pami ci ........................................................................159
Do czego słu9y finalize()..................................................................................................160
Musisz przeprowadzi+ sprz2tanie.....................................................................................161
Warunek zakoMczenia.......................................................................................................162
Jak działa od*miecacz pami ci .........................................................................................163
Inicjalizacja składowych.........................................................................................................166
Okre*lanie sposobu inicjalizacji .......................................................................................167
Inicjalizacja w konstruktorze............................................................................................168
Inicjalizacja tablic ...................................................................................................................174
Tablice wielowymiarowe..................................................................................................179
Podsumowanie ........................................................................................................................182
/wiczenia................................................................................................................................182
Rozdział 5. Ukrywanie implementacji.....................................................................185
Pakiet — jednostka biblioteczna.............................................................................................186
Tworzenie unikatowych nazw pakietów ..........................................................................188
Własna biblioteka narz dziowa ........................................................................................191
Wykorzystanie instrukcji import do zmiany zachowania.................................................192
Pułapka zwi2zana z pakietami..........................................................................................192
Modyfikatory dost pu w Javie................................................................................................192
Dost p pakietowy .............................................................................................................193
public: dost p do interfejsu...............................................................................................194
private: nie dotyka+! .........................................................................................................195
protected: dost p „na potrzeby” dziedziczenia.................................................................196
Interfejs i implementacja.........................................................................................................198
Dost p do klas.........................................................................................................................199
Podsumowanie ........................................................................................................................202
/wiczenia................................................................................................................................203
Rozdział 6. Wielokrotne wykorzystanie klas ...........................................................205
Składnia kompozycji...............................................................................................................205
Składnia dziedziczenia............................................................................................................208
Inicjalizacja klasy bazowej...............................................................................................210
8
Thinking in Java. Edycja polska
Ł2czenie kompozycji i dziedziczenia .....................................................................................212
Zapewnienie poprawnego sprz2tania................................................................................214
Ukrywanie nazw...............................................................................................................217
Wybór mi dzy kompozycj2 a dziedziczeniem........................................................................218
protected..................................................................................................................................220
Przyrostowe tworzenie oprogramowania................................................................................221
Rzutowanie w gór ..................................................................................................................222
Dlaczego „w gór ”............................................................................................................223
Słowo kluczowe final..............................................................................................................224
Zmienne finalne................................................................................................................224
Metody finalne..................................................................................................................227
Klasy finalne.....................................................................................................................230
Ostro9nie z deklaracj2 final ..............................................................................................230
Inicjalizacja i ładowanie klas..................................................................................................231
Inicjalizacja w przypadku dziedziczenia ..........................................................................232
Podsumowanie ........................................................................................................................233
/wiczenia................................................................................................................................233
Rozdział 7. Polimorfizm .........................................................................................237
Rzutowanie w gór raz jeszcze...............................................................................................237
Zapominanie o typie obiektu ............................................................................................239
Mały trik..................................................................................................................................240
Wi2zanie wywołania metody............................................................................................241
Uzyskiwanie poprawnego działania .................................................................................241
Rozszerzalno*+ .................................................................................................................244
Pułapka: „przesłanianie” metod prywatnych....................................................................246
Klasy i metody abstrakcyjne...................................................................................................247
Konstruktory a polimorfizm....................................................................................................250
Kolejno*+ wywołaM konstruktorów..................................................................................250
Dziedziczenie a sprz2tanie................................................................................................252
Zachowanie si metod polimorficznych wewn2trz konstruktorów..................................255
Projektowanie z u9yciem dziedziczenia .................................................................................257
Czyste dziedziczenie kontra rozszerzanie ........................................................................259
Rzutowanie w dół a identyfikacja typu w czasie wykonania ...........................................260
Podsumowanie ........................................................................................................................262
/wiczenia................................................................................................................................262
Rozdział 8. Interfejsy i klasy wewntrzne...............................................................265
Interfejsy .................................................................................................................................265
„Wielokrotne dziedziczenie” w Javie...............................................................................268
Rozszerzanie interfejsu poprzez dziedziczenie ................................................................271
Grupowanie stałych ..........................................................................................................272
Inicjalizacja pól interfejsów..............................................................................................274
Zagnie9d9anie interfejsów................................................................................................275
Klasy wewn trzne...................................................................................................................277
Klasy wewn trzne a rzutowanie w gór ...........................................................................279
Klasy wewn trzne w metodach i zasi gach......................................................................280
Anonimowe klasy wewn trzne.........................................................................................282
Poł2czenie z klas2 zewn trzn2..........................................................................................286
Klasy zagnie9d9one ..........................................................................................................288
Odwoływanie si do obiektu klasy zewn trznej...............................................................290
Si ganie na zewn2trz z klasy wielokrotnie zagnie9d9onej...............................................290
Dziedziczenie po klasach wewn trznych .........................................................................291
Czy klasy wewn trzne mog2 by+ przesłaniane ................................................................292
Lokalne klasy wewn trzne ...............................................................................................293
Identyfikatory klas wewn trznych....................................................................................295
Zgłoś jeśli naruszono regulamin