"JAVA. Programowanie praktyczne od podstaw"

Identyfikator Librowy: 104286

Spis treści

Wstęp 10

1. Wprowadzenie 14

1.1. O programowaniu i językach programowania 16

1.2. Czym jest Java? 20

1.2.1. Nowoczesny język programowania 20

1.2.2. Wieloplatformowość i uniwersalność Javy 21

1.3. Kilka słów o obiektowości 22

1.4. Pierwszy program i kilka elementów składni 23

2. Typy i operacje 30

2.1. Literały i zmienne 32

2.2. Pojęcie typu. Typy proste 33

2.3. Typy i użycie literałów 36

2.4. Typy zmiennych. Deklaracje 41

2.5. Operatory i wyrażenia 46

2.5.1. Przegląd 46

2.5.2. Operatory przypisania 48

2.5.3. Zwiększanie i zmniejszanie 49

2.5.4. Dzielenie całkowite i reszta 51

2.6. Konwersje arytmetyczne 53

3. Definiowanie klas 56

3.1. Do czego służą klasy? 58

3.2. Definiowanie pól 62

3.3. Definiowanie metod 64

3.4. Definiowanie konstruktorów 67

3.5. Przykład definiowania klasy 68

3.6. Składowe statyczne 72

3.7. Przeciążanie metod i konstruktorów 75

4. Programowanie z użyciem klas i obiektów 78

4.1. Obiekty i referencje 80

4.2. Anatomia klasy i zmienna this 88

4.3. Zasięg identyfikatorów. Zmienne lokalne. Czas życia danych 94

4.4. Pakiety i importy 99

4.4.1. Pojecie pakietu 99

4.4.2. Import 101

4.4.3. Importy statyczne 102

4.5. Struktura programu 103

4.6. Krótko o dziedziczeniu 109

4.7. Metody equals() i toString() 117

4.8. Napisy 120

4.9. Interakcja: wprowadzanie napisów i liczb, komunikaty 124

4.10. Wyliczenia (enumeracje) 129

5. Podejmowanie decyzji w programie 134

5.1. Przegląd instrukcji sterujących 136

5.2. Operatory i wyrażenia porównania 139

5.3. Operatory i wyrażenia logiczne 142

5.4. Instrukcje if oraz if-else 145

5.5. Wielowariantowe wybory za pomocą instrukcji switch 148

5.6. Operator warunkowy ?: 154

5.7. Wyjątki 155

5.7.1. Obsługa wyjątków 155

5.7.2. Zgłaszanie wyjątków 165

5.8. Iteracje 168

5.8.1. Pojęcie pętli iteracyjnej 168

5.8.2. Warunkowe pętle iteracyjne: instrukcje while i do...while 171

5.8.3. Pętle iteracyjne o danej liczbie powtórzeń: instrukcja for 175

5.8.4. Przerywanie i kontynuowanie pętli 180

5.8.5. Przykład iteracji: wczytywanie danych z plików tekstowych za pomocą skanera 183

6. Struktury danych 186

6.1. Tablice 188

6.1.1. Deklarowanie i tworzenie tablic w Javie 188

6.1.2. Odwołania do elementów tablic 191

6.1.3. Użycie zmiennych tablicowych w przypisaniach. Zmienne tablicowe jako argumenty i wyniki metod 193

6.1.4. Rozszerzona instrukcja for dla tablic 196

6.1.5. Metody ze zmienną liczbą argumentów 199

6.1.6. Argumenty wiersza poleceń 201

6.1.7. Tablice obiektów 203

6.1.7.1. Tworzenie tablic zawierających referencje do obiektów 203

6.1.7.2. Tablice heterogeniczne 206

6.1.8. Tablice wielowymiarowe 207

6.1.9. Wypełnianie i kopiowanie tablic 208

6.2. Wprowadzenie do kolekcji 209

6.2.1. Tworzenie, przeglądania i sortowanie kolekcji 209

6.2.2. Proste przetwarzanie list i zbiorów 215

6.2.3. Zbiory typu HashSet, metody hashCode() i equals() 221

6.2.4. Kilka słów o kolejkach 225

6.2.5. Mapy 228

6.2.6. Kolekcje a tablice. Co dalej? 233

7. Praktyka przetwarzania danych 236

7.1. Elementy wejścia-wyjścia 238

7.2. Działania na napisach 247

7.2.1. Napisy modyfikowalne 247

7.2.2. Metody klasy String 251

7.2.3. Analiza składniowa tekstów i StringTokenizer 256

7.2.4. Wyrażenia regularne 259

7.2.5. Uproszczenia stosowania wyrażeń regularnych w klasach String i Scanner 269

7.3. Opakowanie typów prostych i autoboxing 277

7.4. Działania na liczbach 282

7.4.1. Operacje na bitach 282

7.4.2. Działania matematyczne 285

7.5. Daty i czas 291

7.5.1. Klasa Calendar i operacje na datach 291

7.5.2. Daty i czas w Javie 8 – elementy nowego API 296

7.6. Formatowanie liczb i dat 302

7.7. Proste sortowanie i wyszukiwanie 306

7.8. Rekurencja 312

8. Programowanie obiektowe 318

8.1. Abstrakcja i hermetyzacja. Klasy i obiekty niezmienne 320

8.2. Inicjacje. Singletony 325

8.3. Przedefiniowanie metod 333

8.4. Metody wirtualne i polimorfizm 340

8.5. Metody i klasy abstrakcyjne 345

8.6. Interfejsy 347

8.6.1. Pojęcie i zastosowanie 347

8.6.2. Metody domyślne interfejsów. Mixiny 356

8.7. Klasy wewnętrzne 358

8.8. Typy i metody sparametryzowane 367

8.8.1. Definiowanie typów sparametryzowanych. Typy surowe i czyszczenie typów 367

8.8.2. Ograniczenia parametrów typu 369

8.8.3. Restrykcje 371

8.8.4. Metody sparametryzowane 372

8.8.5. Uniwersalne argumenty typu 373

8.9. Praktyczne zastosowania interfejsów i klas wewnętrznych 377

8.9.1. Interfejsy kolekcyjne i ich implementacje 377

8.9.2. Porównywanie i porządkowanie elementów kolekcji i tablic 383

8.9.3. Iterowalne obiekty niekolekcyjne 389

8.9.4. Wizytowanie drzew katalogowych 391

9. Wstęp do programowania współbieżnego 398

9.1. Podstawowe pojęcia: procesy i wątki 400

9.2. Tworzenie wątków. Uruchamianie działań równoległych 401

9.3. Zadania i wykonawcy 405

9.4. Kończenie działania wątku 411

9.5. Synchronizacja wątków 417

9.6. Synchronizacja za pomocą jawnego ryglowania 426

9.7. Koordynacja pracy wątków 430

10. Elementy programowania funkcyjnego 436

10.1. Wprowadzenie 438

10.2. Interfejsy funkcyjne i lambda-wyrażenia 443

10.3. Referencje do metod i konstruktorów 451

10.4. Rodzaje i użycie gotowych interfejsów funkcyjnych 453

10.5. Lambda-wyrażenia w gotowych metodach standardowych interfejsów i klas Javy 462

10.6. Przetwarzanie strumieniowe 468

Literatura 484