Promocja!

JAVA RUSZ GŁOWĄ! WYD.III

Original price was: 149.00zł.Current price is: 134.10zł.

Na stanie

Spis treści

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

Autor

ISBN

978-83-283-9984-6

Liczba stron

Rok wydania

Wydawca

Opinie

Na razie nie ma opinii o produkcie.

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

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *