JAVA RUSZ GŁOWĄ WYD.2

97.00

Na stanie

SPIS TREŚCI

Wprowadzenie

  • Dla kogo jest przeznaczona ta książka? (22)
  • Wiemy, co sobie myślisz (23)
  • Metapoznanie – myślenie o myśleniu (25)
  • Oto co możesz zrobić, aby zmusić swój mózg do posłuszeństwa (27)
  • Czego potrzebujesz, aby skorzystać z tej książki? (28)
  • Redaktorzy techniczni (30)
  • Inne osoby, które można pochwalić (31)

1. Przełamując zalew początkowych trudności

  • Jak działa Java? (34)
  • Struktura kodu w Javie (39)
  • Anatomia klasy (40)
  • Tworzenie klasy z metodą main (41)
  • Pętle i pętle i… (43)
  • Przykłady pętli while (44)
  • Rozgałęzienia warunkowe (45)
  • Tworzenie poważnej aplikacji biznesowej (46)
  • Program krasomówczy (49)

2. Wycieczka do Obiektowa

  • Wojna o fotel (albo Jak Obiekty Mogą Zmienić Twoje Życie) (60)
  • Na plaży na laptopie Jurka (61)
  • O tym beztrosko zapomniano napisać w specyfikacji (62)
  • A co z metodą obroc() dla “ameby”? (64)
  • Ta niepewność mnie zabije! Kto wygra Superfotel? (65)
  • Tworzenie pierwszego obiektu (68)
  • Tworzenie i testowanie obiektów Film (69)
  • Szybko! Opuszczamy metodę main! (70)

3. Poznaj swoje zmienne

  • Deklarowanie zmiennej (82)
  • “Proszę podwójną. Albo nie – całkowitą!” (83)
  • Naprawdę nie chcesz niczego rozsypywać (84)
  • Tabela słów zarezerwowanych (85)
  • Odwołanie do obiektu to jedynie inna wartość zmiennej (87)
  • Życie na odśmiecanej stercie (89)
  • Tablice także są obiektami (91)
  • Tworzymy tablicę obiektów Pies (92)
  • Przykładowy obiekt Pies (94)

4. Jak działają obiekty?

  • Wielkość ma wpływ na sposób szczekania (105)
  • Do metod można przekazywać informacje (106)
  • Metoda może coś zwrócić (107)
  • Java przekazuje argumenty przez wartość (109)
  • Ciekawe rozwiązania wykorzystujące parametry i wartości wynikowe (111)
  • Hermetyzacja (112)
  • Ukryj dane (113)
  • Jak zachowują się obiekty w tablicy? (115)
  • Deklarowanie i inicjalizacja składowych (116)
  • Różnica pomiędzy składowymi a zmiennymi lokalnymi (117)
  • Porównywanie zmiennych (typów podstawowych oraz odwołań) (118)

5. Supermocne metody

  • Napiszmy grę przypominającą “statki”, o nazwie “Zatopić portal” (128)
  • Łagodne wprowadzenie do prostszej wersji gry (130)
  • Pisanie implementacji metod (133)
  • Pisanie kodu testowego dla klasy ProstyPortal (134)
  • Kod testowy dla klasy ProstyPortal (135)
  • Ostateczny kod klas ProstyPortal oraz ProstyPortalTester (138)
  • Kod przygotowawczy klasy ProstyPortalGra (140)
  • Trochę więcej o pętlach for (146)
  • Różnica pomiędzy pętlami for i while (147)
  • Rozszerzone pętle (148)
  • Rzutowanie wartości typów podstawowych (149)

6. Korzystanie z biblioteki Javy

  • Ostatni rozdział zakończył się w dramatycznych okolicznościach – w programie znaleźliśmy błąd (156)
  • Oryginalny kod przygotowawczy fragmentu metody sprawdz() (160)
  • Niektóre możliwości klasy ArrayList (163)
  • ArrayList (164)
  • Porównanie klasy ArrayList ze zwyczajną tablicą (167)
  • Napiszmy właściwą wersję gry “Zatopić portal” (170)
  • Co (i kiedy) robią poszczególne obiekty w grze? (172)
  • Kod przygotowawczy właściwej klasy PortalGraMax (174)
  • Wyrażenia logiczne o bardzo dużych możliwościach (181)
  • Stosowanie biblioteki (Java API) (184)
  • Jak poznać API? (188)

7. Wygodniejsze życie w Obiektowie

  • Zrozumienie dziedziczenia (196)
  • Przykład dziedziczenia (197)
  • Jakie metody należy przesłonić? (200)
  • Jaka metoda jest wywoływana? (203)
  • Projektowanie drzewa dziedziczenia (204)
  • Ale poczekaj! To jeszcze nie wszystko! (206)
  • Jak możesz określić, czy dobrze zaprojektowałeś hierarchię dziedziczenia? (207)
  • Czy korzystanie z dziedziczenia przy projektowaniu klas jest “używaniem”, czy “nadużywaniem”? (209)
  • Co w rzeczywistości daje nam dziedziczenie? (210)
  • Jak dotrzymać kontraktu – reguły przesłaniania (218)
  • Przeciążanie metody (219)

8. Poważny polimorfizm

  • Abstrakcyjne kontra konkretne (230)
  • Metody abstrakcyjne (231)
  • Polimorfizm w działaniu (234)
  • Czym jest “superultramegaklasa” Object? (237)
  • Stosowanie polimorficznych odwołań typu Object ma swoją cenę… (239)
  • Kiedy Pies nie zachowuje się jak Pies (240)
  • Object nie szczeka (241)
  • Połącz się ze swoim wewnętrznym Object-em (242)
  • A co, jeśli musimy zmienić kontrakt? (246)
  • Na pomoc spieszą interfejsy! (252)

9. Życie i śmierć obiektu

  • Stos i sterta. Gdzie są przechowywane informacje? (264)
  • Metody są zapisywane na stosie (265)
  • A co ze zmiennymi lokalnymi, które są obiektami? (266)
  • Jeśli zmienne lokalne są przechowywane na stosie, to gdzie są przechowywane składowe? (267)
  • Cud utworzenia obiektu (268)
  • Tworzenie obiektu Kaczka (270)
  • Inicjalizacja stanu nowego obiektu Kaczka (271)
  • Nanoprzegląd. Cztery rzeczy o konstruktorach, które należy zapamiętać (277)
  • Znaczenie konstruktorów klasy bazowej w życiu obiektu (279)
  • Konstruktory klas bazowych pobierające argumenty (283)
  • Wywoływanie jednego przeciążonego konstruktora z poziomu innego (284)

10. Liczby mają znaczenie

  • Metody klasy Math – najlepsze z możliwych odpowiedników metod globalnych (302)
  • Różnice pomiędzy metodami zwyczajnymi a statycznymi (303)
  • Co oznacza, że klasa ma statyczne metody (304)
  • Składowa statyczna – ta sama wartość we wszystkich obiektach danej klasy (307)
  • Inicjalizacja składowych statycznych (309)
  • Rolę stałych pełnią statyczne zmienne finalne (310)
  • Nie tylko zmienne statyczne mogą być finalne (311)
  • Formatowanie liczb (322)
  • Specyfikator formatu (326)
  • Operacje na datach (330)
  • Stosowanie obiektów Calendar (333)
  • Wybrane możliwości API klasy Calendar (334)

11. Ryzykowne działania

  • Stwórzmy program MuzMachina (344)
  • JavaSound API (345)
  • Wyjątek jest obiektem… klasy Exception (350)
  • Finally – blok kodu, który musi zostać wykonany niezależnie od wszystkiego (355)
  • Przechwytywanie wielu wyjątków (357)
  • Reguły związane ze stosowaniem wyjątków (366)
  • Generowanie dźwięków (368)
  • Twój pierwszy odtwarzacz muzyki (370)
  • Tworzenie obiektów MidiEvent (danych piosenki) (371)
  • Komunikat MIDI – serce zdarzenia MidiEvent (372)
  • Zmiana komunikatu (373)

12. Historia bardzo graficzna

  • Wszystko zaczyna się od okna (380)
  • Twój pierwszy interfejs graficzny – przycisk w ramce (381)
  • Przechwytywanie zdarzeń generowanych przez działania użytkownika (383)
  • Odbiorcy, źródła i zdarzenia (387)
  • Stwórz własny komponent umożliwiający rysowanie (390)
  • Odwołanie do porządnej klasy Graphics ukrywa obiekt Graphics2D (392)
  • Układy GUI – wyświetlanie w ramce więcej niż jednego komponentu (396)
  • Jak stworzyć obiekt klasy wewnętrznej? (404)
  • Wykorzystanie klas wewnętrznych do tworzenia animacji (408)
  • Odbieranie zdarzeń niezwiązanych z interfejsem użytkownika (413)

13. Popracuj nad Swingiem

  • Komponenty biblioteki Swing (426)
  • Komponenty można zagnieżdżać (426)
  • Menedżery układu (427)
  • W jaki sposób menedżery układu podejmują decyzje? (428)
  • Różne menedżery układu mają różne zasady rozmieszczania (428)
  • Wielka trójka menedżerów układu: BorderLayout, FlowLayout oraz BoxLayout (429)
  • Zabawy z komponentami biblioteki Swing (439)
  • Tworzenie aplikacji MuzMachina (445)

14. Zapisywanie obiektów

  • Odczytywanie taktów (454)
  • Zapisywanie stanu (455)
  • Zapisywanie serializowanego obiektu do pliku (456)
  • Deserializacja – odtwarzanie obiektów (465)
  • Zapisywanie łańcucha znaków w pliku tekstowym (471)
  • Klasa java.io.File (476)
  • Odczyt zawartości pliku tekstowego (478)
  • Przetwarzanie łańcuchów znaków przy użyciu metody split() (482)
  • Identyfikator wersji – wielki problem serializacji (484)
  • Stosowanie serialVersionUID (485)
  • Zapisywanie kompozycji (487)

15. Nawiąż połączenie

  • Muzyczne pogawędki w czasie rzeczywistym (496)
  • Nawiązywanie połączenia, wysyłanie i odbieranie danych (498)
  • Nawiązanie połączenia sieciowego (499)
  • Port TCP to tylko numer. 16-bitowa liczba identyfikująca konkretny program na serwerze (500)
  • Aby odczytywać dane z gniazda, należy użyć strumienia BufferedReader (502)
  • Aby zapisać dane w gnieździe, użyj strumienia PrintWriter (503)
  • Program CodziennePoradyKlient (504)
  • Kod programu CodziennePoradyKlient (505)
  • Tworzenie prostego serwera (507)
  • Kod aplikacji CodziennePoradySerwer (508)
  • Tworzenie klienta pogawędek (510)
  • Możliwość stosowania wielu wątków w Javie zapewnia jedna klasa – Thread (514)
  • Jakie są konsekwencje posiadania więcej niż jednego stosu wywołań? (515)
  • Aby stworzyć zadanie dla wątku, zaimplementuj interfejs Runnable (518)
  • Mechanizm zarządzający wątkami (521)
  • Usypianie wątku (525)
  • Usypianie wątków w celu zapewnienia bardziej przewidywalnego działania programu (526)
  • Tworzenie i uruchamianie dwóch wątków (527)
  • Cóż… Tak, możemy. JEST pewien problem związany ze stosowaniem wątków (528)
  • Problem Moniki i Roberta w formie kodu (530)
  • Przykład Moniki i Roberta (531)
  • Musimy wykonać metodę pobierzGotowke() jako operację atomową (534)
  • Stosowanie blokady obiektu (535)
  • Przerażający problem “utraconej modyfikacji” (536)
  • Wykonajmy ten przykładowy kod… (537)
  • Zadeklaruj metodę inkrementuj() jako metodę atomową. Synchronizuj ją! (538)
  • Mroczna strona synchronizacji (540)
  • Nowa i poprawiona wersja programu ProstyKlientPogawedek (542)
  • Naprawdę prosty serwer pogawędek (544)

16. Struktury danych

  • ArrayList nie jest jedyną dostępną kolekcją (557)
  • Deklaracja metody sort() (563)
  • Poznajemy typy ogólne (565)
  • Używanie KLAS uogólnionych (566)
  • Stosowanie METOD uogólnionych (568)
  • Ponownie odwiedzimy metodę sort() (571)
  • Stosowanie własnych komparatorów (576)
  • Potrzebujemy zbioru, a nie listy (581)
  • Biblioteka kolekcji (fragment) (582)
  • Stosowanie argumentów polimorficznych i typów ogólnych (593)
  • Znaki wieloznaczne śpieszą z pomocą (598)

17. Rozpowszechnij swój kod

  • Wdrażanie aplikacji (606)
  • Oddzielanie kodu źródłowego od plików klasowych (608)
  • Umieszczanie programów w archiwach JAR (609)
  • Uruchamianie (wykonywanie) archiwum JAR (610)
  • Umieść klasy w pakietach (611)
  • Zapobieganie konfliktom nazw pakietów (612)
  • Kompilacja i uruchamianie programu, w którym wykorzystywane są pakiety (614)
  • Flaga -d jest nawet lepsza, niż twierdziliśmy (615)
  • Tworzenie wykonywalnego archiwum JAR zawierającego pakiety (616)
  • Java Web Start (621)
  • Plik .jnlp (623)

18. Przetwarzanie rozproszone

  • RMI udostępnia obiekty pomocnicze klienta i serwera (636)
  • Bardzo prosty serwlet (649)
  • Tak dla zabawy przeróbmy nasz program krasomówczy na serwlet (651)
  • Enterprise JavaBeans – RMI na środkach dopingujących (653)
  • I na samym końcu przedstawiamy… małego dżina Jini (654)
  • Odkrywanie adaptacyjne w akcji (655)

A Ostatnie doprawianie kodu

  • Ostateczna wersja programu MuzMachina (672)
  • Ostateczna wersja serwera aplikacji MuzMachina (679)

B Dziesięć najważniejszych zagadnień, które niemal znalazły się w tej książce…

  • Lista dziesięciu zagadnień (682)

Skorowidz (699)

Autor

ISBN

978-83-246-2773-8

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

Napisz pierwszą opinię o „JAVA RUSZ GŁOWĄ WYD.2”