Facebook - konwersja
  • promocja

Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI - ebook

Wydawnictwo:
Tłumacz:
Data wydania:
23 marca 2018
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.

Programowanie w Javie. Solidna wiedza w praktyce. Wydanie XI - ebook

Tworzenie oprogramowania to wspaniała umiejętność. Zdolny programista może w zasadzie pracować w dowolnej dziedzinie. Co więcej, szalony rozwój technologii informatycznych właściwie codziennie otwiera nowe rynki i nowe nisze. Niemal wszędzie jest potrzebny procesor i oprogramowanie. I spora część tego cyfrowego torciku przypada programistom Javy. Najlepsze kąski dostają się jednak tym najlepszym, najzdolniejszym i najbardziej profesjonalnym.

Jeśli chcesz się stać właśnie takim programistą, wziąłeś do ręki właściwą książkę. Jest to klasyczny podręcznik, dzięki któremu wiele osób zdobyło mistrzostwo w programowaniu w Javie. Zawarto tu wyjątkowo rzetelne, praktyczne i aktualne wprowadzenie do języka. W książce znajdziesz wiele informacji o nowej wersji języka — Javie 9 oraz o świetnym narzędziu JShell, które ułatwia szybkie poznanie języka. Szczegółowo opisano JavaFX — najnowszy GUI i równocześnie zestaw narzędzi do nowych projektów. W przystępny i zrozumiały sposób przedstawiono dość trudne pojęcia, takie jak współbieżność, dzięki czemu bez problemu wykorzystasz moc systemów wielordzeniowych.

W tej książce między innymi:

  • Solidne wprowadzenie do Javy — klasy, obiekty, metody
  • Podstawy programowania, w tym programowania obiektowego
  • Struktury danych, kolekcje, lambdy i strumienie
  • Rozwiązania bazodanowe
  • System modułów platformy Java 9

Programuj profesjonalnie — ucz się od najlepszych!

Spis treści

Przedmowa (29)

Wstęp (31)

Zanim zaczniesz (49)

1. Wprowadzenie do komputerów, internetu i Javy (55)

  • 1.1. Wprowadzenie (56)
  • 1.2. Sprzęt i oprogramowanie (58)
    • 1.2.1. Prawo Moore'a (59)
    • 1.2.2. Sposób organizacji komputera (59)
  • 1.3.Hierarchia danych (61)
  • 1.4. Języki maszynowe, języki asemblerowe i języki wysokiego poziomu (64)
  • 1.5. Wprowadzenie do technologii obiektowej (65)
    • 1.5.1. Samochód jako obiekt (65)
    • 1.5.2. Metody i klasy (66)
    • 1.5.3. Tworzenie egzemplarzy (66)
    • 1.5.4. Wielokrotne użycie (66)
    • 1.5.5. Komunikaty i wywoływanie metod (67)
    • 1.5.6. Atrybuty i zmienne instancji (67)
    • 1.5.7. Enkapsulacja i ukrywanie informacji (67)
    • 1.5.8. Dziedziczenie (67)
    • 1.5.9. Interfejsy (67)
    • 1.5.10. Obiektowa analiza i projektowanie (68)
    • 1.5.11. Język UML (68)
  • 1.6. Systemy operacyjne (68)
    • 1.6.1. Windows - własnościowy system operacyjny (69)
    • 1.6.2. Linux - system operacyjny o otwartym kodzie źródłowym (69)
    • 1.6.3. Systemy macOS i iOS firmy Apple dla urządzeń iPhone, iPad i iPod Touch (70)
    • 1.6.4. System Android firmy Google (70)
  • 1.7. Języki programowania (71)
  • 1.8. Java (74)
  • 1.9. Typowe środowisko programistyczne wykorzystujące Javę (74)
  • 1.10. Testowanie przykładowej aplikacji napisanej w Javie (78)
  • 1.11. Internet i sieć WWW (82)
    • 1.11.1. Internet, czyli sieć sieci (83)
    • 1.11.2. Sieć WWW - przyjazny internet (83)
    • 1.11.3. Usługi sieciowe i mashupy (83)
    • 1.11.4. Internet rzeczy (84)
  • 1.12. Technologie związane z oprogramowaniem (85)
  • 1.13. Otrzymywanie odpowiedzi na pytania (87)

2. Wprowadzenie do aplikacji Javy, wejścia - wyjścia i operatorów (91)

  • 2.1. Wprowadzenie (92)
  • 2.2. Twój pierwszy program - wyświetlenie wiersza tekstu (92)
    • 2.2.1. Kompilacja aplikacji (97)
    • 2.2.2. Wykonywanie aplikacji (98)
  • 2.3. Modyfikacja pierwszego programu (99)
  • 2.4. Wyświetlanie tekstu metodą printf (101)
  • 2.5. Inna aplikacja - dodawanie liczb całkowitych (102)
    • 2.5.1. Deklaracja import (102)
    • 2.5.2. Deklaracja i utworzenie obiektu Scanner w celu pobrania danych z klawiatury (103)
    • 2.5.3. Prośba o wprowadzenie danych (104)
    • 2.5.4. Deklaracja zmiennej dla liczby całkowitej i pobranie wartości z klawiatury (104)
    • 2.5.5. Pobranie drugiej liczby całkowitej (105)
    • 2.5.6. Użycie zmiennych w obliczeniach (105)
    • 2.5.7. Wyświetlenie wyniku obliczeń (105)
    • 2.5.8. Dokumentacja API Javy (106)
    • 2.5.9. Deklaracja i inicjalizacja zmiennej jako osobne instrukcje (106)
  • 2.6. Zagadnienia dotyczące pamięci (106)
  • 2.7. Operacje arytmetyczne (107)
  • 2.8. Podejmowanie decyzji - operatory równości i relacji (111)
  • 2.9. Podsumowanie (115)

3. Wprowadzenie do klas, obiektów, metod i tekstów (127)

  • 3.1. Wprowadzenie (128)
  • 3.2. Zmienne instancji, metody ustawiające i metody pobierające (129)
    • 3.2.1. Klasa Account ze zmienną instancji oraz metodą ustawiającą i metodą pobierającą (129)
    • 3.2.2. Klasa AccountTest, która tworzy i stosuje obiekt klasy Account (133)
    • 3.2.3. Kompilacja i wykonanie aplikacji z wieloma klasami (136)
    • 3.2.4. Diagram klas UML dla klasy Account (136)
    • 3.2.5. Dodatkowe uwagi na temat klasy AccountTest (137)
    • 3.2.6. Inżynieria oprogramowania z prywatnymi zmiennymi instancji i publicznymi metodami dostępowymi (138)
  • 3.3. Klasa Account - inicjalizacja obiektów za pomocą konstruktorów (139)
    • 3.3.1. Deklaracja konstruktora klasy Account dla własnej inicjalizacji obiektów (140)
    • 3.3.2. Klasa AccountTest - inicjalizacja obiektów Account w momencie ich tworzenia (141)
  • 3.4. Klasa Account ze stanem konta - liczby zmiennoprzecinkowe (142)
    • 3.4.1. Klasa Account ze zmienną instancji balance typu double (143)
    • 3.4.2. Klasa AccountTest używająca klasy Account (145)
  • 3.5. Typy podstawowe i typy referencyjne (148)
  • 3.6. (Opcjonalnie) Studium przypadku GUI i grafiki - prosty interfejs graficzny (149)
    • 3.6.1. Czym jest interfejs graficzny? (150)
    • 3.6.2. FXML i narzędzie Scene Builder (150)
    • 3.6.3. Aplikacja powitalna - wyświetlenie tekstu i obrazka (150)
    • 3.6.4. Uruchomienie narzędzia Scene Builder i utworzenie pliku Welcome.fxml (151)
    • 3.6.5. Dodanie obrazu do folderu zawierającego plik Welcome.fxml (151)
    • 3.6.6. Tworzenie kontenera układu VBox (151)
    • 3.6.7. Konfiguracja kontenera układu VBox (151)
    • 3.6.8. Dodanie i konfiguracja etykiety (153)
    • 3.6.9. Dodanie i konfiguracja ImageView (154)
    • 3.6.10. Podgląd wynikowego interfejsu aplikacji (155)
  • 3.7. Podsumowanie (156)

4. Struktury sterujące, część 1.; przypisanie i operatory ++ i -- (165)

  • 4.1. Wprowadzenie (166)
  • 4.2. Algorytmy (166)
  • 4.3. Pseudokod (167)
  • 4.4. Struktury sterujące (167)
    • 4.4.1. Struktury sekwencyjne w Javie (168)
    • 4.4.2. Instrukcje wyboru w Javie (169)
    • 4.4.3. Instrukcje iteracji w Javie (169)
    • 4.4.4. Podsumowanie instrukcji sterujących Javy (170)
  • 4.5. Instrukcja pojedynczego wyboru - if (170)
  • 4.6. Instrukcja podwójnego wyboru - if...else (171)
    • 4.6.1. Zagnieżdżone instrukcje if...else (172)
    • 4.6.2. Problem wiszącego else (173)
    • 4.6.3. Bloki (173)
    • 4.6.4. Operator warunku (?:) (174)
  • 4.7. Klasa Student - zagnieżdżone instrukcje if...else (175)
  • 4.8. Instrukcja iteracji while (177)
  • 4.9. Tworzenie algorytmów - iteracja sterowana licznikiem (179)
  • 4.10. Tworzenie algorytmów - iteracja sterowana znacznikiem (183)
  • 4.11. Tworzenie algorytmów - zagnieżdżone struktury sterujące (191)
  • 4.12. Złożone operatory przypisania (195)
  • 4.13. Operatory inkrementacji i dekrementacji (196)
  • 4.14. Typy podstawowe (199)
  • 4.15. Studium przypadku GUI i grafiki - obsługa zdarzeń i rysowanie linii (200)
    • 4.15.1. Test ukończonej aplikacji (200)
    • 4.15.2. Budowanie GUI aplikacji (201)
    • 4.15.3. Przygotowanie do interakcji z GUI w sposób programowy (205)
    • 4.15.4. Klasa DrawLinesController (207)
    • 4.15.5. Klasa DrawLines - główna klasa aplikacji (209)
  • 4.16. Podsumowanie (212)

5. Struktury sterujące, część 2.; operatory logiczne (229)

  • 5.1. Wprowadzenie (230)
  • 5.2. Podstawy iteracji sterowanej licznikiem (230)
  • 5.3. Instrukcja iteracji for (231)
  • 5.4. Przykłady użycia instrukcji for (236)
    • 5.4.1. Aplikacja - suma liczb parzystych od 2 do 20 (236)
    • 5.4.2. Aplikacja - kalkulator procentu składanego (237)
  • 5.5. Instrukcja iteracji do...while (240)
  • 5.6. Instrukcja switch dotycząca wielu wyborów (242)
  • 5.7. Studium przypadku klasy AutoPolicy - tekst jako wartość w instrukcji switch (247)
  • 5.8. Instrukcje break i continue (251)
    • 5.8.1. Instrukcja break (251)
    • 5.8.2. Instrukcja continue (251)
  • 5.9. Operatory logiczne (252)
    • 5.9.1. Operator warunkowy AND (&&) (253)
    • 5.9.2. Operator warunkowy OR (||) (253)
    • 5.9.3. Skrócone obliczenie wartości złożonych warunków (254)
    • 5.9.4. Operatory logiczne AND (&) i OR (|) (255)
    • 5.9.5. Operator logiczny XOR (^) (255)
    • 5.9.6. Operator negacji logicznej (!) (256)
    • 5.9.7. Przykład użycia operatorów logicznych (256)
  • 5.10. Podsumowanie programowania strukturalnego (258)
  • 5.11. Studium przypadku GUI i grafiki - rysowanie prostokątów i owali (263)
  • 5.12. Podsumowanie (266)

6. Metody - dokładniejsze spojrzenie (279)

  • 6.1. Wprowadzenie (280)
  • 6.2. Jednostki programu w Javie (280)
  • 6.3. Metody statyczne, pola statyczne i klasa Math (282)
  • 6.4. Metody z wieloma parametrami (284)
  • 6.5. Uwagi na temat deklarowania i używania metod (288)
  • 6.6. Stos wywołań metod i rekordy aktywacyjne (289)
    • 6.6.1. Stos wywołań metod (289)
    • 6.6.2. Ramki stosu (290)
    • 6.6.3. Zmienne lokalne i ramki stosu (290)
    • 6.6.4. Przepełnienie stosu (290)
  • 6.7. Promocja argumentu i rzutowanie (291)
  • 6.8. Pakiety API Javy (292)
  • 6.9. Studium przypadku - bezpieczne generowanie liczb losowych (294)
  • 6.10. Studium przypadku - gra losowa i wprowadzenie do typów enum (299)
  • 6.11. Zasięg deklaracji (303)
  • 6.12. Przeciążanie metod (306)
    • 6.12.1. Deklarowanie przeciążonych metod (306)
    • 6.12.2. Rozróżnianie przeciążonych metod (307)
    • 6.12.3. Typy zwracane przez metody przeciążone (308)
  • 6.13. (Opcjonalnie) Studium przypadku GUI i grafiki - kolory i wypełnione kształty (308)
  • 6.14. Podsumowanie (312)

7. Tablice i obiekty ArrayList (327)

  • 7.1. Wprowadzenie (328)
  • 7.2. Tablice (329)
  • 7.3. Deklaracja i tworzenie tablic (330)
  • 7.4. Przykłady użycia tablic (332)
    • 7.4.1. Tworzenie i inicjalizacja tablicy (332)
    • 7.4.2. Użycie inicjalizatora tablicy (333)
    • 7.4.3. Obliczenie wartości elementów tablicy (334)
    • 7.4.4. Sumowanie elementów tablicy (335)
    • 7.4.5. Graficzne przedstawienie danych z tablicy za pomocą wykresu słupkowego (336)
    • 7.4.6. Użycie elementów tablicy jako liczników (337)
    • 7.4.7. Użycie tablic do analizy wyników (338)
  • 7.5. Obsługa wyjątków - przetworzenie niepoprawnej odpowiedzi (340)
    • 7.5.1. Instrukcja try (341)
    • 7.5.2. Wykonywanie bloku catch (341)
    • 7.5.3. Metoda toString parametru wyjątku (341)
  • 7.6. Studium przypadku - tasowanie i rozdawanie kart (342)
  • 7.7. Rozszerzona instrukcja for (346)
  • 7.8. Przekazywanie tablic do metod (348)
  • 7.9. Przekazywanie przez wartość kontra przekazywanie przez referencję (350)
  • 7.10. Studium przypadku - klasa GradeBook wykorzystująca tablicę z ocenami (351)
  • 7.11. Tablice wielowymiarowe (356)
    • 7.11.1. Tablice tablic jednowymiarowych (357)
    • 7.11.2. Dwuwymiarowe tablice z wierszami o różnych długościach (357)
    • 7.11.3. Tworzenie tablic dwuwymiarowych za pomocą wyrażenia tworzenia tablic (357)
    • 7.11.4. Przykład tablicy dwuwymiarowej - wyświetlanie wartości elementów (358)
    • 7.11.5. Typowe operacje na tablicach wielowymiarowych wykonywane pętlami for (359)
  • 7.12. Studium przypadku - klasa GradeBook używająca tablicy dwuwymiarowej (360)
  • 7.13. Lista argumentów o zmiennej długości (365)
  • 7.14. Użycie argumentów wiersza poleceń (367)
  • 7.15. Klasa Arrays (369)
  • 7.16. Wprowadzenie do kolekcji i klasy ArrayList (372)
  • 7.17. (Opcjonalnie) Studium przypadku GUI i grafiki - rysowanie łuków (375)
  • 7.18. Podsumowanie (378)

8. Obiekty i klasy - dokładniejsze spojrzenie (401)

  • 8.1. Wprowadzenie (402)
  • 8.2. Studium przypadku - klasa Time (402)
  • 8.3. Sterowanie dostępem do składowych (407)
  • 8.4. Odnoszenie się do składowych aktualnego obiektu referencją this (408)
  • 8.5. Studium przypadku klasy Time - przeciążanie konstruktorów (410)
  • 8.6. Konstruktory domyślne i bezargumentowe (416)
  • 8.7. Uwagi dotyczące metod dostępowych (416)
  • 8.8. Kompozycja (418)
  • 8.9. Typ enum (420)
  • 8.10. Mechanizm odśmiecania pamięci (423)
  • 8.11. Składowe statyczne klasy (424)
  • 8.12. Import statyczny (428)
  • 8.13. Zmienne instancji typu final (429)
  • 8.14. Dostęp na poziomie pakietu (430)
  • 8.15. Użycie klasy BigDecimal do precyzyjnych obliczeń pieniężnych (431)
  • 8.16. (Opcjonalnie) Studium przypadku GUI i grafiki - użycie obiektów z grafiką (434)
  • 8.17. Podsumowanie (438)

9. Programowanie obiektowe - dziedziczenie (447)

  • 9.1. Wprowadzenie (448)
  • 9.2. Klasy nadrzędne i podklasy (449)
  • 9.3. Składowe chronione (451)
  • 9.4. Związek między klasami nadrzędnymi i podklasami (452)
    • 9.4.1. Tworzenie i wykorzystywanie klasy CommissionEmployee (453)
    • 9.4.2. Tworzenie i użycie klasy BasePlusCommissionEmployee (458)
    • 9.4.3. Tworzenie hierarchii dziedziczenia CommissionEmployee przez BasePlusCommissionEmployee (462)
    • 9.4.4. Tworzenie hierarchii dziedziczenia CommissionEmployee przez BasePlusCommissionEmployee używającej zmiennych chronionych (465)
    • 9.4.5. Tworzenie hierarchii dziedziczenia CommissionEmployee przez BasePlusCommissionEmployee używającej zmiennych prywatnych (468)
  • 9.5. Konstruktory w podklasach (473)
  • 9.6. Klasa Object (473)
  • 9.7. Projektowanie klas - kompozycja kontra dziedziczenie (474)
  • 9.8. Podsumowanie (476)

10. Programowanie obiektowe - polimorfizm i interfejsy (483)

  • 10.1. Wprowadzenie (484)
  • 10.2. Przykłady polimorfizmu (486)
  • 10.3. Przykład zachowania polimorficznego (487)
  • 10.4. Metody i klasy abstrakcyjne (490)
  • 10.5. Studium przypadku - system płac wykorzystujący polimorfizm (492)
    • 10.5.1. Abstrakcyjna klasa nadrzędna Employee (495)
    • 10.5.2. Konkretna podklasa SalariedEmployee (496)
    • 10.5.3. Konkretna podklasa HourlyEmployee (498)
    • 10.5.4. Konkretna podklasa CommissionEmployee (500)
    • 10.5.5. Pośrednia konkretna podklasa BasePlusCommissionEmployee (501)
    • 10.5.6. Przetwarzanie polimorficzne, operator instanceof i rzutowanie w dół (503)
  • 10.6. Umożliwienie przypisywania między zmiennymi klas nadrzędnych i podklas (507)
  • 10.7. Metody i klasy finalne (508)
  • 10.8. Dokładniejszy opis problemów z wywoływaniem metod z konstruktorów (509)
  • 10.9. Tworzenie i stosowanie interfejsów (509)
    • 10.9.1. Tworzenie hierarchii Payable (512)
    • 10.9.2. Interfejs Payable (512)
    • 10.9.3. Klasa Invoice (513)
    • 10.9.4. Modyfikacja klasy Employee w celu implementacji interfejsu Payable (515)
    • 10.9.5. Użycie interfejsu Payable do polimorficznego przetwarzania klas Invoice i Employee (517)
    • 10.9.6. Wspólne interfejsy API Javy (518)
  • 10.10. Rozszerzenia interfejsów w Javie SE 8 (519)
    • 10.10.1. Domyślne metody interfejsu (519)
    • 10.10.2. Statyczne metody interfejsu (520)
    • 10.10.3. Interfejsy funkcyjne (520)
  • 10.11. Prywatne metody interfejsów w Javie SE 9 (521)
  • 10.12. Konstruktory prywatne (521)
  • 10.13. Programowanie do interfejsu, a nie do implementacji (522)
    • 10.13.1. Dziedziczenie implementacji działa najlepiej dla niewielkiej liczby ściśle powiązanych klas (522)
    • 10.13.2. Dziedziczenie interfejsów jest najlepsze dla elastyczności (522)
    • 10.13.3. Modyfikacja hierarchii Employee (523)
  • 10.14. Studium przypadku GUI i grafiki - rysowanie z użyciem polimorfizmu (524)
  • 10.15. Podsumowanie (526)

11. Obsługa wyjątków - dokładniejsze spojrzenie (535)

  • 11.1. Wprowadzenie (536)
  • 11.2. Przykład - dzielenie przez 0 bez obsługi wyjątków (537)
  • 11.3. Przykład - obsługa wyjątków ArithmeticException i InputMismatchException (540)
  • 11.4. Kiedy używać obsługi wyjątków (545)
  • 11.5. Hierarchia wyjątków Javy (546)
  • 11.6. Blok finally (549)
  • 11.7. Rozwijanie stosu i uzyskiwanie informacji z wyjątku (554)
  • 11.8. Wyjątki łańcuchowe (557)
  • 11.9. Deklarowanie nowych rodzajów wyjątków (559)
  • 11.10. Warunki wstępne i warunki końcowe (560)
  • 11.11. Asercje (560)
  • 11.12. Instrukcja try z zasobami - automatyczne zwalnianie zasobów (562)
  • 11.13. Podsumowanie (563)

12. Graficzny interfejs użytkownika JavaFX, część 1. (569)

  • 12.1. Wprowadzenie (570)
  • 12.2. Narzędzie Scene Builder dla JavaFX (571)
  • 12.3. Struktura okna aplikacji JavaFX (572)
  • 12.4. Aplikacja powitalna - wyświetlenie tekstu i obrazka (573)
    • 12.4.1. Uruchomienie narzędzia Scene Builder i utworzenie pliku Welcome.fxml (574)
    • 12.4.2. Dodanie obrazu do folderu zawierającego plik Welcome.fxml (574)
    • 12.4.3. Tworzenie kontenera układu VBox (574)
    • 12.4.4. Konfiguracja kontenera układu VBox (575)
    • 12.4.5. Dodanie i konfiguracja etykiety (575)
    • 12.4.6. Dodanie i konfiguracja ImageView (576)
    • 12.4.7. Podgląd wynikowego interfejsu aplikacji (578)
  • 12.5. Aplikacja do wyliczania napiwków - wprowadzenie do obsługi zdarzeń (578)
    • 12.5.1. Testowanie kalkulatora napiwków (579)
    • 12.5.2. Przedstawienie technologii (580)
    • 12.5.3. Budowanie GUI aplikacji (582)
    • 12.5.4. Klasa TipCalculator (589)
    • 12.5.5. Klasa TipCalculatorController (591)
  • 12.6. Funkcjonalności opisywane w pozostałych rozdziałach dotyczących JavaFX (596)
  • 12.7. Podsumowanie (596)

13. Graficzny interfejs użytkownika JavaFX, część 2. (605)

  • 13.1. Wprowadzenie (606)
  • 13.2. Układanie węzłów w grafie (606)
  • 13.3. Aplikacja Painter - przyciski opcji, zdarzenia myszy i kształty (608)
    • 13.3.1. Omówienie technologii (608)
    • 13.3.2. Utworzenie pliku Painter.fxml (611)
    • 13.3.3. Tworzenie GUI (611)
    • 13.3.4. Podklasa Painter klasy Application (614)
    • 13.3.5. Klasa PainterController (614)
  • 13.4. Aplikacja do wybierania kolorów (618)
    • 13.4.1. Omówienie technologii (618)
    • 13.4.2. Tworzenie GUI (620)
    • 13.4.3. Podklasa ColorChooser klasy Application (622)
    • 13.4.4. Klasa ColorChooserController (622)
  • 13.5. Aplikacja do przeglądania okładek (625)
    • 13.5.1. Omówienie technologii (625)
    • 13.5.2. Dodanie obrazków do folderu aplikacji (626)
    • 13.5.3. Budowanie interfejsu graficznego aplikacji (626)
    • 13.5.4. Podklasa CoverViewer klasy Application (627)
    • 13.5.5. Klasa CoverViewerController (628)
  • 13.6. Aplikacja do przeglądania okładek - dostosowanie komórek ListView (630)
    • 13.6.1. Omówienie technologii (630)
    • 13.6.2. Kopiowanie przeglądarki okładek (631)
    • 13.6.3. Klasa własnej fabryki komórek - ImageTextCell (631)
    • 13.6.4. Klasa CoverViewerController (633)
  • 13.7. Dodatkowe możliwości JavaFX (634)
  • 13.8. JavaFX 9 - aktualizacja JavaFX w Javie SE 9 (636)
  • 13.9. Podsumowanie (638)

14. Tekst, znaki i wyrażenia regularne (649)

  • 14.1. Wprowadzenie (650)
  • 14.2. Podstawy znaków i tekstów (650)
  • 14.3. Klasa String (651)
    • 14.3.1. Konstruktory klasy String (651)
    • 14.3.2. Metody length, charAt i getChars (652)
    • 14.3.3. Porównywanie tekstów (653)
    • 14.3.4. Znajdowanie położenia znaków i fragmentów w tekstach (658)
    • 14.3.5. Wydobywanie fragmentu tekstu (660)
    • 14.3.6. Łączenie tekstów (661)
    • 14.3.7. Inne metody klasy String (661)
    • 14.3.8. Metoda valueOf klasy String (663)
  • 14.4. Klasa StringBuilder (664)
    • 14.4.1. Konstruktory StringBuilder (665)
    • 14.4.2. Metody length, capacity, setLength i ensureCapacity klasy StringBuilder (665)
    • 14.4.3. Metody charAt, setCharAt, getChars i reverse klasy StringBuilder (667)
    • 14.4.4. Metody append klasy StringBuilder (668)
    • 14.4.5. Metody wstawiania i usuwania klasy StringBuilder (670)
  • 14.5. Klasa Character (671)
  • 14.6. Tokenizacja tekstów (675)
  • 14.7. Wyrażenia regularne, klasy Pattern i Matcher (676)
    • 14.7.1. Zastępowanie fragmentów tekstu i podział tekstu (682)
    • 14.7.2. Klasy Pattern i Matcher (683)
  • 14.8. Podsumowanie (685)

15. Pliki, strumienie wejścia - wyjścia, NIO i serializacja XML (697)

  • 15.1. Wprowadzenie (698)
  • 15.2. Pliki i strumienie (698)
  • 15.3. Użycie klas i interfejsów NIO do pobrania informacji o pliku lub folderze (700)
  • 15.4. Sekwencyjne pliki tekstowe (704)
    • 15.4.1. Tworzenie sekwencyjnego pliku tekstowego (704)
    • 15.4.2. Odczyt danych z sekwencyjnego pliku tekstowego (707)
    • 15.4.3. Studium przypadku - program sprawdzający salda płatności klientów (709)
    • 15.4.4. Aktualizacja plików sekwencyjnych (713)
  • 15.5. Serializacja XML (713)
    • 15.5.1. Tworzenie sekwencyjnego pliku używającego serializacji XML (714)
    • 15.5.2. Odczyt i deserializacja danych z pliku sekwencyjnego (719)
  • 15.6. Okna dialogowe FileChooser i DirectoryChooser (720)
  • 15.7. (Opcjonalnie) Dodatkowe klasy java.io (726)
    • 15.7.1. Interfejsy i klasy dotyczące wejścia - wyjścia danych bajtowych (727)
    • 15.7.2. Interfejsy i klasy dla znakowych operacji wejścia - wyjścia (729)
  • 15.8. Podsumowanie (729)

16. Ogólne kolekcje (739)

  • 16.1. Wprowadzenie (740)
  • 16.2. Omówienie kolekcji (740)
  • 16.3. Klasy otoczkowe (742)
  • 16.4. Automatyczne pakowanie i rozpakowywanie (742)
  • 16.5. Interfejs Collection i klasa Collections (743)
  • 16.6. Listy (743)
    • 16.6.1. ArrayList i Iterator (744)
    • 16.6.2. Klasa LinkedList (747)
  • 16.7. Metody klasy Collections (751)
    • 16.7.1. Metoda sort (752)
    • 16.7.2. Metoda shuffle (755)
    • 16.7.3. Metody reverse, fill, copy, max i min (757)
    • 16.7.4. Metoda binarySearch (759)
    • 16.7.5. Metody addAll, frequency i disjoint (761)
  • 16.8. Klasa PriorityQueue i interfejs Queue (763)
  • 16.9. Zbiory (764)
  • 16.10. Odwzorowania (767)
  • 16.11. Synchronizowane kolekcje (771)
  • 16.12. Kolekcje niezmienne (772)
  • 16.13. Implementacje abstrakcyjne (772)
  • 16.14. Java SE 9 - wygodne metody fabryczne dla niezmiennych kolekcji (773)
  • 16.15. Podsumowanie (776)

17. Lambdy i strumienie (783)

  • 17.1. Wprowadzenie (784)
  • 17.2. Strumienie i redukcja (786)
    • 17.2.1. Sumowanie liczb od 1 do 10 pętlą for (786)
    • 17.2.2. Iteracja zewnętrzna za pomocą pętli for jest narażona na błędy (787)
    • 17.2.3. Sumowanie za pomocą strumienia i redukcji (787)
    • 17.2.4. Iteracja wewnętrzna (789)
  • 17.3. Odwzorowania i lambdy (789)
    • 17.3.1. Wyrażenia lambda (790)
    • 17.3.2. Składnia lambd (791)
    • 17.3.3. Operacje pośrednie i operacje kończące (792)
  • 17.4. Filtrowanie (793)
  • 17.5. Jak elementy poruszają się po potoku strumienia? (795)
  • 17.6. Referencje do metod (796)
    • 17.6.1. Tworzenie strumienia IntStream liczb losowych (797)
    • 17.6.2. Wykonywanie zadań dla każdego elementu strumienia za pomocą metody forEach i referencji do metody (797)
    • 17.6.3. Odwzorowanie liczb całkowitych na obiekty String za pomocą metody mapToObj (798)
    • 17.6.4. Łączenie tekstów metodą collect (799)
  • 17.7. Operacje IntStream (799)
    • 17.7.1. Tworzenie obiektu IntStream i wyświetlanie jego wartości (800)
    • 17.7.2. Operacje kończące count, min, max, sum i average (801)
    • 17.7.3. Operacja kończąca reduce (802)
    • 17.7.4. Sortowanie wartości IntStream (804)
  • 17.8. Interfejsy funkcyjne (804)
  • 17.9. Lambdy - dokładniejsze spojrzenie (806)
  • 17.10. Obsługa Stream (807)

     
    • 17.10.1. Tworzenie Stream (808)
    • 17.10.2. Sortowanie strumienia i zbieranie wyników (808)
    • 17.10.3. Filtrowanie strumienia i przechowywanie wyników w celu ich późniejszego użycia (809)
    • 17.10.4. Filtrowanie i sortowanie strumienia i zbieranie wyników (809)
    • 17.10.5. Sortowanie zebranych wyników (810)
  • 17.11. Obsługa Stream (810)

     
    • 17.11.1. Mapowanie tekstów na duże litery (811)
    • 17.11.2. Filtrowanie tekstów i sortowanie ich rosnąco bez uwzględniania wielkości liter (812)
    • 17.11.3. Filtrowanie tekstów i sortowanie ich malejąco bez uwzględniania wielkości liter (812)
  • 17.12. Obsługa Stream (812)

     
    • 17.12.1. Tworzenie i wyświetlenie List (814)
    • 17.12.2. Odfiltrowywanie pracowników z wynagrodzeniem mieszczącym się w określonym przedziale (815)
    • 17.12.3. Sortowanie pracowników na podstawie wielu pól (818)
    • 17.12.4. Odwzorowanie pracowników na unikatowe nazwiska (819)
    • 17.12.5. Grupowanie pracowników według działów (821)
    • 17.12.6. Zliczenie pracowników poszczególnych działów (822)
    • 17.12.7. Suma i średnia zarobków pracowników (822)
  • 17.13. Utworzenie Stream na podstawie pliku (823)
  • 17.14. Strumienie wartości losowych (827)
  • 17.15. Strumienie nieskończone (829)
  • 17.16. Obsługa zdarzeń za pomocą lambd (831)
  • 17.17. Dodatkowe uwagi na temat interfejsów Javy SE 8 (831)
  • 17.18. Podsumowanie (832)

18. Rekurencja (849)

  • 18.1. Wprowadzenie (850)
  • 18.2. Pojęcie rekurencji (851)
  • 18.3. Przykład użycia rekurencji - silnia (852)
  • 18.4. Implementacja FactorialCalculator z użyciem klasy BigInteger (855)
  • 18.5. Przykład użycia rekurencji - ciąg Fibonacciego (856)
  • 18.6. Rekurencja i stos wywołań metod (859)
  • 18.7. Rekurencja kontra iteracja (860)
  • 18.8. Wieże Hanoi (862)
  • 18.9. Fraktale (864)
    • 18.9.1. Krzywa Kocha (865)
    • 18.9.2. (Opcjonalnie) Studium przypadku - pióro Lo (866)
    • 18.9.3. (Opcjonalnie) Interfejs graficzny rysujący fraktal (868)
    • 18.9.4. (Opcjonalnie) Klasa FractalController (870)
  • 18.10. Rekurencyjne nawracanie (875)
  • 18.11. Podsumowanie (876)

19. Wyszukiwanie, sortowanie i notacja dużego O (885)

  • 19.1. Wprowadzenie (886)
  • 19.2. Wyszukiwanie liniowe (887)
  • 19.3. Notacja dużego O (890)
    • 19.3.1. Algorytmy O(1) (890)
    • 19.3.2. Algorytmy O(n) (890)
    • 19.3.3. Algorytmy O(n2) (891)
    • 19.3.4. Duże O dla wyszukiwania liniowego (891)
  • 19.4. Wyszukiwanie binarne (892)
    • 19.4.1. Implementacja wyszukiwania binarnego (893)
    • 19.4.2. Wydajność wyszukiwania binarnego (896)
  • 19.5. Algorytmy sortujące (896)
  • 19.6. Sortowanie przez wybieranie (897)
    • 19.6.1. Implementacja sortowania przez wybieranie (897)
    • 19.6.2. Wydajność sortowania przez wybieranie (900)
  • 19.7. Sortowanie przez wstawianie (900)
    • 19.7.1. Implementacja sortowania przez wstawianie (901)
    • 19.7.2. Wydajność sortowania przez wstawianie (903)
  • 19.8. Sortowanie przez scalanie (903)
    • 19.8.1. Implementacja algorytmu sortowania przez scalanie (904)
    • 19.8.2. Wydajność sortowania przez scalanie (908)
  • 19.9. Podsumowanie dużego O algorytmów wyszukiwania i sortowania z tego rozdziału (908)
  • 19.10. Duże zrównoleglenie i algorytmy równoległe (908)
  • 19.11. Podsumowanie (909)

20. Uogólnione klasy i metody - dokładniejsze spojrzenie (917)

  • 20.1. Wprowadzenie (918)
  • 20.2. Po co nam metody uogólnione? (918)
  • 20.3. Metody uogólnione - implementacja i przekształcenia na etapie kompilacji (920)
  • 20.4. Dodatkowy problem przekształcenia w...
Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-283-3974-3
Rozmiar pliku: 18 MB

BESTSELLERY

Kategorie: