Szczegóły ebooka

Java. Rusz głową! Wydanie III

Java. Rusz głową! Wydanie III

Kathy Sierra, Bert Bates, Trisha Gee

Ebook

Technologie bazujące na Javie są wszędzie!

Od momentu pojawienia się pierwszej wersji Java pociągała programistów ze względu na przyjazną składnię, cechy obiektowe, zarządzanie pamięcią, a przede wszystkim obietnicę przenośności. Mijają lata, a Java wciąż cieszy się ogromną popularnością, jest sukcesywnie rozwijana i używana do coraz to nowszych zastosowań. Wszystko wskazuje na to, że jeszcze długo programiści biegle posługujący się tym językiem będą mieli pełne ręce roboty.

Ta książka, podobnie jak inne pozycje z serii Rusz głową!, została przygotowana zgodnie z jedyną w swoim rodzaju metodyką nauczania, wykorzystującą zasady funkcjonowania ludzkiego mózgu. Dzięki zagadkom, tajemnicom do rozwiązania, zabawnym ćwiczeniom i przystępnie podanej wiedzy bez trudu przyswoisz nawet dość złożone koncepcje, takie jak wyrażenia lambda, typy ogólne czy programowanie sieciowe i funkcyjne. Znajdziesz tu zabawne i niekonwencjonalne ilustracje, świetne analogie, pogawędki prowadzone przy kominku przez programistę i kompilator. To wszystko sprawia, że ta pozycja jest absolutnie wyjątkowym i niezwykle skutecznym podręcznikiem!

Dzięki książce:

  • błyskawicznie przyswoisz podstawy Javy
  • zagłębisz się w tajniki obiektów, klas i dziedziczenia
  • zrozumiesz istotę wyrażeń lambda, strumieni i kolekcji
  • napiszesz graficzny interfejs użytkownika
  • nauczysz się korzystać z biblioteki Swing
  • zaczniesz rozwiązywać problemy współbieżności i pracować z wątkami

To najbardziej zajmująca książka do nauki programowania, jaką kiedykolwiek widziałam!

Angie Jones, Java Champion

Wprowadzenie

  • Dla kogo jest przeznaczona ta książka?
  • Wiemy, co sobie myślisz
  • Metapoznanie - myślenie o myśleniu
  • Oto co zrobiliśmy
  • Oto co możesz zrobić, aby zmusić swój mózg do posłuszeństwa
  • Czego potrzebujesz, aby skorzystać z tej książki?
  • Kilka ostatnich spraw, o których musisz wiedzieć

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

  • Jak działa Java?
  • Co będziesz robić w Javie?
  • Krótka historia Javy
  • Struktura kodu w Javie
  • Tworzenie klasy z metodą main()
  • Pętle i pętle, i.
  • Rozgałęzienia warunkowe
  • Tworzenie poważnej aplikacji biznesowej
  • Program krasomówczy
  • Ćwiczenia
  • Rozwiązania ćwiczeń

2. Wycieczka do Obiektowa

  • Wojna o fotel
  • Tworzenie pierwszego obiektu
  • Tworzenie i testowanie obiektów Film
  • Szybko! Opuszczamy metodę main()!
  • Uruchamianie zgadywanki
  • Ćwiczenia
  • Rozwiązania ćwiczeń

3. Poznaj swoje zmienne

  • Deklarowanie zmiennej
  • "Proszę podwójną. Albo nie - całkowitą!"
  • Trzymaj się z daleka od tego słowa kluczowego!
  • Kontrolowanie obiektu Pies
  • Odwołanie do obiektu to jedynie inna wartość zmiennej
  • Życie na odśmiecanej stercie
  • Tablica jest jakby tacą z kubkami
  • Tworzymy tablicę obiektów Pies
  • Ćwiczenia
  • Rozwiązania ćwiczeń

4. Jak działają obiekty?

  • Pamiętaj! Klasa opisuje to, co obiekt wie, oraz to, co robi
  • Wielkość ma wpływ na sposób szczekania
  • Do metod można przekazywać informacje
  • Metoda może coś zwrócić
  • Do metody można przekazać więcej niż jedną informację
  • Ciekawe rozwiązania wykorzystujące parametry i wartości wynikowe
  • Hermetyzacja
  • Jak zachowują się obiekty w tablicy?
  • Deklarowanie i inicjalizacja zmiennych instancyjnych
  • Porównywanie zmiennych (typów podstawowych oraz odwołań)
  • Ćwiczenia
  • Rozwiązania ćwiczeń

5. Supermocne metody

  • Napiszmy grę przypominającą okręty, o nazwie "Zatopić startup"
  • Tworzenie klasy
  • Pisanie kodu testowego dla klasy ProstyStartup
  • Metoda sprawdz()
  • Kod przygotowawczy klasy ProstyStartupGra
  • Metoda main() gry
  • Zagrajmy
  • Trochę więcej o pętlach for
  • Rozszerzone pętle for
  • Rzutowanie wartości typów podstawowych
  • Ćwiczenia
  • Rozwiązania ćwiczeń

6. Korzystanie z biblioteki Javy

  • Ostatni rozdział zakończył się w dramatycznych okolicznościach - w programie znaleźliśmy błąd
  • Obudź się i przejrzyj bibliotekę
  • Niektóre możliwości klasy ArrayList
  • Porównanie klasy ArrayList ze zwyczajną tablicą
  • Napiszmy WŁAŚCIWĄ wersję gry "Zatopić startup"
  • Kod przygotowawczy właściwej klasy StartupGraMax
  • Ostateczna wersja klasy Startup
  • Wyrażenia logiczne o bardzo dużych możliwościach
  • Stosowanie biblioteki (Java API)
  • Ćwiczenia
  • Rozwiązania ćwiczeń

7. Wygodniejsze życie w Obiektowie

  • Wojna o fotel raz jeszcze.
  • Zrozumienie dziedziczenia
  • Zaprojektujmy drzewo dziedziczenia dla programu symulacji zwierząt
  • Poszukiwanie dalszych możliwości zastosowania dziedziczenia
  • Relacje JEST oraz MA
  • Jak możesz określić, czy dobrze zaprojektowałeś hierarchię dziedziczenia?
  • Czy korzystanie z dziedziczenia przy projektowaniu klas jest "używaniem", czy "nadużywaniem"?
  • Jak dotrzymać kontraktu - reguły przesłaniania
  • Przeciążanie metody
  • Ćwiczenia
  • Rozwiązania ćwiczeń

8. Poważny polimorfizm

  • Czy projektując przedstawioną obok hierarchię klas, o czymś zapomnieliśmy?
  • Kompilator nie pozwoli utworzyć obiektów klasy abstrakcyjnej
  • Abstrakcyjne kontra konkretne
  • MUSISZ zaimplementować wszystkie metody abstrakcyjne
  • Polimorfizm w działaniu
  • A co z obiektami innych klas? Dlaczego nie stworzyć listy, w której można by zapisać cokolwiek?
  • Kiedy Pies nie zachowuje się jak Pies
  • Rozważmy różne możliwości projektowe
  • Tworzenie i implementowanie interfejsu ZwierzakDomowy
  • Wywoływanie wersji metody zdefiniowanej w klasie bazowej
  • Ćwiczenia
  • Rozwiązania ćwiczeń

9. Życie i śmierć obiektu

  • Stos i sterta. Gdzie są przechowywane dane?
  • Metody są zapisywane na stosie
  • A co ze zmiennymi lokalnymi, które są obiektami?
  • Cud utworzenia obiektu
  • Tworzenie obiektu Kaczka
  • Czy kompilator zawsze tworzy dla nas konstruktor bezargumentowy?
  • Nanoprzegląd. Cztery rzeczy o konstruktorach, które należy zapamiętać
  • Znaczenie konstruktorów klasy bazowej w życiu obiektu
  • Czy dziecko może istnieć przed rodzicami?
  • A co ze zmiennymi referencyjnymi?
  • Nie podoba mi się kierunek, w jakim to wszystko zmierza
  • Ćwiczenia
  • Rozwiązania ćwiczeń

10. Liczby mają znaczenie

  • Metody klasy Math - najlepsze z możliwych odpowiedników metod globalnych
  • Różnice pomiędzy metodami zwyczajnymi a statycznymi
  • Inicjalizacja zmiennych statycznych
  • Metody klasy Math
  • Reprezentowanie wartości typów podstawowych w formie obiektów
  • Automatyczna konwersja działa niemal wszędzie
  • A teraz w przeciwnym kierunku. zamiana liczby na łańcuch znaków
  • Formatowanie liczb
  • Specyfikator formatu
  • Ćwiczenia
  • Rozwiązania ćwiczeń

11. Struktury danych

  • Poznajemy API pakietu java.util, List i Collections
  • Typy ogólne oznaczają większe bezpieczeństwo typów
  • Ponownie odwiedzimy metodę sort()
  • Nowa, poprawiona, porównywalna klasa Piosenka
  • Sortowanie z wykorzystaniem wyłącznie komparatorów
  • Zastosowanie wyrażeń lambda w kodzie aplikacji szafy grającej
  • Wykorzystanie kolekcji HashSet zamiast ArrayList
  • Co MUSIMY wiedzieć o klasie TreeSet.
  • Poznaliśmy już listy i zbiory, teraz poznamy mapy
  • W końcu wracamy do typów ogólnych
  • Ćwiczenia
  • Rozwiązania ćwiczeń

12. Wyrażenia lambda i strumienie: co, a nie jak

  • Powiedz komputerowi, CZEGO chcesz
  • Kiedy pętle for schodzą na złą drogę
  • Prezentacja API strumieni
  • Pobieranie wyników ze strumienia
  • Wytyczne dotyczące stosowania strumieni
  • Witaj, lambdo, nasz (niezbyt) stary przyjacielu
  • Zauważanie interfejsów funkcyjnych
  • Pierwsze wyzwanie Leona: znaleźć wszystkie rockowe utwory
  • Drugie wyzwanie Leona: lista wszystkich gatunków
  • Ćwiczenia
  • Rozwiązania ćwiczeń

13. Ryzykowne zachowanie

  • Stwórzmy program MuzMachina
  • Przede wszystkim potrzebujemy sekwensera
  • Wyjątek jest obiektem. klasy Exception
  • Sterowanie przepływem w blokach try-catch
  • Czy wspominaliśmy, że metoda może zgłaszać więcej niż jeden wyjątek?
  • W przypadku użycia wielu bloków catch należy je uporządkować ze względu na zakres - od najmniejszego do największego
  • Zrezygnowanie z obsługi wyjątku (poprzez jego zadeklarowanie) jedynie odsuwa w czasie to, co nieuniknione
  • Kod od kuchni
  • Wersja 1. Twój pierwszy odtwarzacz muzyki
  • Wersja 2. Eksperymenty muzyczne z wykorzystaniem argumentów przekazywanych z wiersza poleceń
  • Ćwiczenia
  • Rozwiązania ćwiczeń

14. Historia bardzo graficzna

  • Wszystko zaczyna się od okna
  • Przechwytywanie zdarzeń generowanych przez działania użytkownika
  • Odbiorcy, źródła i zdarzenia
  • Stwórz własny komponent umożliwiający rysowanie
  • Fajne operacje, jakie można realizować w metodzie paintComponent()
  • Układy GUI - wyświetlanie w ramce więcej niż jednego komponentu
  • Klasy wewnętrzne spieszą z pomocą!
  • Wyrażenia lambda spieszą z pomocą (ponownie)!
  • Wykorzystanie klas wewnętrznych do tworzenia animacji
  • Prostszy sposób tworzenia komunikatów-zdarzeń
  • Ćwiczenia
  • Rozwiązania ćwiczeń

15. Popracuj nad Swingiem

  • Komponenty biblioteki Swing
  • Menedżery układu
  • Wielka trójka menedżerów układu: BorderLayout, FlowLayout oraz BoxLayout
  • Zabawy z komponentami biblioteki Swing
  • Kod od kuchni
  • Tworzenie aplikacji MuzMachina
  • Ćwiczenia
  • Rozwiązania ćwiczeń

16. Zapisywanie obiektów (i tekstu)

  • Odczytywanie taktów
  • Zapisywanie serializowanego obiektu do pliku
  • Jeśli chcesz, aby klasa zapewniała możliwość serializacji, zaimplementuj w niej interfejs Serializable
  • Deserializacja - odtwarzanie obiektów
  • Identyfikator wersji - wielki problem serializacji
  • Odczyt zawartości pliku tekstowego
  • Kwiz - gra (zarys kodu)
  • Typy Path, Paths i Files (zabawy z katalogami)
  • Finalnie, bliższe spojrzenie na finally
  • Zapisywanie kompozycji
  • Ćwiczenia
  • Rozwiązania ćwiczeń

17. Nawiąż połączenie

  • Nawiązywanie połączenia, wysyłanie i odbieranie danych
  • Program CodziennePoradyKlient
  • Tworzenie prostej aplikacji serwera
  • Możliwość stosowania wielu wątków w Javie zapewnia jedna klasa - Thread
  • Trzy stany nowego wątku
  • Usypianie wątku
  • Tworzenie i uruchamianie dwóch (lub większej liczby!) wątków
  • Koniec pracy w puli wątków
  • Nowa i poprawiona wersja programu ProstyKlientPogawedek
  • Ćwiczenia
  • Rozwiązania ćwiczeń

18. Rozwiązywanie problemów współbieżności

  • Problem Moniki i Roberta w formie kodu
  • Stosowanie blokady obiektu
  • Przerażający problem "utraconej modyfikacji"
  • Zadeklaruj metodę inkrementuj() jako metodę atomową. Synchronizuj ją!
  • Wzajemna blokada, mroczna strona wątków
  • Operacje CAS z użyciem zmiennych atomowych
  • Stosowanie niezmiennych obiektów
  • Więcej problemów ze współużytkowanymi danymi
  • Stosowanie struktur danych bezpiecznych pod względem wielowątkowym
  • Ćwiczenia
  • Rozwiązania ćwiczeń

Dodatek A. Ostatnie doprawianie kodu

  • Ostateczna wersja programu MuzMachina
  • Ostateczna wersja serwera aplikacji MuzMachina

Dodatek B. Jedenaście najważniejszych tematów, które nie zmieściły się w głównej części książki

  • Nr 11. JShell (Java REPL)
  • Nr 10. Pakiety
  • Nr 9. Niezmienność w łańcuchach i klasach opakowujących
  • Nr 8. Poziomy i modyfikatory dostępu (czyli kto co widzi)
  • Nr 7. Zmienna lista argumentów
  • Nr 6. Adnotacje
  • Nr 5. Lambdy i mapy
  • Nr 4. Strumienie równoległe
  • Nr 3. Wyliczenia (nazywane także typami wyliczeniowymi)
  • Nr 2. Wnioskowanie typów zmiennych lokalnych (słowo kluczowe var)
  • Nr 1. Rekordy

Skorowidz

  • Tytuł: Java. Rusz głową! Wydanie III
  • Autor: Kathy Sierra, Bert Bates, Trisha Gee
  • Tytuł oryginału: Head First Java: A Brain-Friendly Guide, 3rd Edition
  • Tłumaczenie: Piotr Rajca
  • ISBN: 978-83-283-9985-3, 9788328399853
  • Data wydania: 2023-05-30
  • Format: Ebook
  • Identyfikator pozycji: javrg3
  • Wydawca: Helion