Tytuł JAVA. Programowanie użyteczne od podstaw Autor Krzysztof Barteczko Język polski Wydawnictwo Wydawnictwo Naukowe PWN ISBN 978-83-01-17823-9 Rok wydania 2014 Warszawa Wydanie 1 liczba stron 486 Format epub, mobi Spis treści Wstęp 9 1. Wprowadzenie 13 1.1. O programowaniu i językach programowania 15 1.2. Czym jest Java? 19 1.2.1. Postępowy język programowania 19 1.2.2. Wieloplatformowość i uniwersalność Javy 20 1.3. Kilka słów o obiektowości 21 1.4. Pierwszy program i kilka części składni 22 2. Typy i operacje 29 2.1. Literały i zmienne 31 2.2. Pojęcie rodzaju. Typy proste 32 2.3. Typy i zastosowanie literałów 35 2.4. Typy zmiennych. Deklaracje 40 2.5. Operatory i wyrażenia 45 2.5.1. Przegląd 45 2.5.2. Operatory przypisania 47 2.5.3. Zwiększanie i zmniejszanie 48 2.5.4. Dzielenie całkowite i reszta 50 2.6. Konwersje arytmetyczne 52 3. Definiowanie klas 55 3.1. Do czego służą klasy? 57 3.2. Definiowanie pól 61 3.3. Definiowanie metod 63 3.4. Definiowanie konstruktorów 66 3.5. Przykład defi niowania klasy 67 3.6. Składowe statyczne 71 3.7. Przeciążanie metod i konstruktorów 74 4. Programowanie z użyciem klas i obiektów 77 4.1. Obiekty i referencje 79 4.2. Anatomia klasy i zmienna this 87 4.3. Zasięg identyfi katorów. Zmienne lokalne. Czas życia danych 93 4.4. Pakiety i importy 98 4.4.1. Pojecie zestawu 98 4.4.2. Import 100 4.4.3. Importy statyczne 101 4.5. Struktura programu 102 4.6. Krótko o dziedziczeniu 108 4.7. Metody equals() i toString() 116 4.8. Napisy 119 4.9. Interakcja: wprowadzanie napisów i liczb, komunikaty 123 4.10. Wyliczenia (enumeracje) 128 5. Podejmowanie decyzji w programie 133 5.1. Przegląd instrukcji sterujących 135 5.2. Operatory i wyrażenia porównania 138 5.3. Operatory i wyrażenia logiczne 141 5.4. Instrukcje if oraz if-else 144 5.5. Wielowariantowe wybory za pomocą instrukcji switch 147 5.6. Operator warunkowy?: 153 5.7. Wyjątki 154 5.7.1. Obsługa wyjątków 154 5.7.2. Zgłaszanie wyjątków 164 5.8. Iteracje 167 5.8.1. Pojęcie pętli iteracyjnej 167 5.8.2. Warunkowe pętle iteracyjne: instrukcje while i do...while 170 5.8.3. Pętle iteracyjne o danej liczbie powtórzeń: instrukcja for 174 5.8.4. Przerywanie i kontynuowanie pętli 179 5.8.5. Przykład iteracji: wczytywanie informacji z plików tekstowych za pomocą skanera 182 6. Struktury informacji 185 6.1. Tablice 187 6.1.1. Deklarowanie i tworzenie tablic w Javie 187 6.1.2. Odwołania do części tablic 190 6.1.3. Wykorzystanie zmiennych tablicowych w przypisaniach. Zmienne tablicowe jako argumenty i wyniki metod 192 6.1.4. Zwiększona instrukcja for dla tablic 195 6.1.5. Metody ze zmienną liczbą argumentów 198 6.1.6. Argumenty wiersza poleceń 200 6.1.7. Tablice obiektów 202 6.1.7.1. Tworzenie tablic zawierających referencje do obiektów 202 6.1.7.2. Tablice heterogeniczne 205 6.1.8. Tablice wielowymiarowe 206 6.1.9. Wypełnianie i kopiowanie tablic 207 6.2. Wprowadzenie do linii 208 6.2.1. Tworzenie, oglądania i sortowanie linii 208 6.2.2. Proste przetwarzanie list i zbiorów 214 6.2.3. Zbiory rodzaju HashSet, metody hashCode() i equals() 220 6.2.4. Kilka słów o kolejkach 224 6.2.5. Mapy 227 6.2.6. Kolekcje a tablice. Co dalej? 232 7. Praktyka przetwarzania informacji 235 7.1. Elementy wejścia-wyjścia 237 7.2. Działania na napisach 246 7.2.1. Napisy modyfikowalne 246 7.2.2. Metody klasy String 250 7.2.3. Analiza składniowa tekstów i StringTokenizer 255 7.2.4. Wyrażenia regularne 258 7.2.5. Uproszczenia stosowania wyrażeń regularnych w klasach String i Scanner 268 7.3. Opakowanie typów prostych i autoboxing 276 7.4. Działania na ilośćch 281 7.4.1. Operacje na bitach 281 7.4.2. Działania matematyczne 284 7.5. Daty i czas 290 7.5.1. Klasa Calendar i operacje na datach 290 7.5.2. Daty i czas w Javie 8 – elementy nowego API 295 7.6. Formatowanie liczb i dat 301 7.7. Proste sortowanie i wyszukiwanie 305 7.8. Rekurencja 311 8. Programowanie obiektowe 317 8.1. Abstrakcja i hermetyzacja. Klasy i obiekty niezmienne 319 8.2. Inicjacje. Singletony 324 8.3. Przedefi niowanie metod 332 8.4. Metody wirtualne i polimorfi zm 339 8.5. Metody i klasy abstrakcyjne 344 8.6. Interfejsy 346 8.6.1. Pojęcie i zastosowanie 346 8.6.2. Metody domyślne interfejsów. Mixiny 355 8.7. Klasy wewnętrzne 357 8.8. Typy i metody sparametryzowane 366 8.8.1. Defi niowanie typów sparametryzowanych. Typy minimalistyczne i czyszczenie typów 366 8.8.2. Ograniczenia parametrów typu 368 8.8.3. Restrykcje 370 8.8.4. Metody sparametryzowane 371 8.8.5. Uniwersalne argumenty rodzaju 372 8.9. Poręczne zastosowania interfejsów i klas wewnętrznych 376 8.9.1. Interfejsy kolekcyjne i ich implementacje 376 8.9.2. Porównywanie i porządkowanie elementów serii i tablic 382 8.9.3. Iterowalne obiekty niekolekcyjne 388 8.9.4. Wizytowanie drzew katalogowych 390 9. Wstęp do programowania współbieżnego 397 9.1. Podstawowe pojęcia: procesy i wątki 399 9.2. Tworzenie wątków. Uruchamianie działań równoległych 400 9.3. Zadania i wykonawcy 404 9.4. Kończenie działania wątku 410 9.5. Synchronizacja wątków 416 9.6. Synchronizacja za pomocą jawnego ryglowania 425 9.7. Koordynacja pracy wątków 429 10. Części programowania funkcyjnego 435 10.1. Wprowadzenie 437 10.2. Interfejsy funkcyjne i lambda-wyrażenia 442 10.3. Referencje do metod i konstruktorów 450 10.4. Rodzaje i użycie gotowych interfejsów funkcyjnych 452 10.5. Lambda-wyrażenia w gotowych metodach standardowych interfejsów i klas Javy 461 10.6. Przetwarzanie strumieniowe 467 Literatura 483