Java. Rusz głową! Wydanie II - Helion
Tytuł oryginału: Head First Java, 2nd Edition
Tłumaczenie: Piotr Rajca
ISBN: 978-83-246-2773-8
stron: 720, Format: 200x230, okładka: miękka
Data wydania: 2010-11-19
Księgarnia: Helion
Cena książki: 67,90 zł (poprzednio: 95,63 zł)
Oszczędzasz: 29% (-27,73 zł)
Jeśli chcesz poznać Javę, nie szukaj dalej —
oto pierwsza książka techniczna z graficznym interfejsem użytkownika!
- Obejmuje Javę 5.0
Technologie oparte na Javie są wszędzie — jeśli piszesz oprogramowanie i jeszcze nie poznałeś Javy, nadszedł czas, by ruszyć głową!
Otwórz się na Javę i projektowanie obiektowe. Przystąp do nauki unikalną metodą, wykraczającą poza suche opisy składni oraz sposobów omijania codziennie spotykanych raf programistycznych. To doskonały podręcznik dla osób, które lubią uczyć się nowych języków programowania i nie mają wykształcenia informatycznego lub programistycznego. Zostań fantastycznym programistą i zdobądź wiedzę kompletną: od tworzenia obiektów, po graficzny interfejs użytkownika (GUI), obsługę wyjątków (błędów) oraz komunikację sieciową (gniazda) i wielowątkowość, a nawet pakowanie grupy plików klasowych w jeden plik instalacyjny.
Naprzód, głowo! Nikt ci tego nie potrafił wytłumaczyć? Wydaje Ci się, że to problem nie na Twoją głowę? Nie potrzebujesz elektrowstrząsów, żeby pobudzić swój mózg do aktywnego działania. Tylko żadnych gwałtownych gestów! Usiądź wygodnie, otwórz książkę, dopiero teraz się zacznie. Na początek — rusz głową!
Precz z nudnymi wykładami i zakuwaniem bez zrozumienia! Nauka to znacznie więcej niż tylko czytanie suchego tekstu. Twój mózg jest niczym głodny rekin, cały czas prący naprzód w poszukiwaniu nowej, apetycznej przekąski. Jak karmimy Twój wygłodniały umysł?
Używamy rysunków, bo obraz wart jest 1024 słów. Stosujemy powtórzenia, by zakodować na stałe dane w Twojej chłonnej głowie. Oddziałujemy na emocje, jesteśmy nieprzewidywalni, zaskakujący i zabawni. Stawiamy przed Tobą wyzwania i zadajemy pytania, które angażują Cię w proces studiowania przedstawianych zagadnień. Cały czas pobudzamy Twój umysł do aktywnego działania, zmuszamy go do posłuszeństwa… a za ciężką pracę nagrodzimy go smakowitym ciasteczkiem w postaci wiedzy — wisienka gratis!
Rozgryź to sam!
- Klasy i obiekty
- Typy danych
- Pierwszy program w Javie
- Java API
- Programowanie obiektowe — dziedziczenie, polimorfizm, interfejsy i klasy abstrakcyjne
- Metody
- Obsługa wyjątków
- Graficzny interfejs użytkownika
- Operacje wejścia-wyjścia
- Programowanie sieciowe i RMI
Osoby które kupowały "Java. Rusz głową! Wydanie II", wybierały także:
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 129,00 zł, (51,60 zł -60%)
- Metoda dziel i zwyci 89,00 zł, (35,60 zł -60%)
- JavaFX. Kurs video. Wzorce oraz typy generyczne 79,00 zł, (31,60 zł -60%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
Spis treści
Java. Rusz głową! Wydanie II -- 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)