Java. Rusz głową! Wydanie 3 - ebook
Java. Rusz głową! Wydanie 3 - 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
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
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9985-3 |
Rozmiar pliku: | 76 MB |