E-book details

Myśl w języku Java! Nauka programowania. Wydanie II

Myśl w języku Java! Nauka programowania. Wydanie II

Allen B. Downey, Chris Mayfield

Ebook

Java jest językiem dojrzałym i jednocześnie bardzo nowoczesnym. Skupiona wokół niego społeczność cały czas dynamicznie go rozwija, sprawiając, że wszechstronność i innowacyjność Javy budzi podziw. Jest to też język idealny do nauki programowania - początkujący programiści, którzy wybierają Javę jako swój pierwszy język, w naturalny sposób nabierają dobrych nawyków, dzięki czemu później stosowanie się do najlepszych praktyk programistycznych nie sprawia im problemu. Ważne jest tylko, aby wraz z nauką programowania adept sztuki tworzenia kodu przyswoił choćby najważniejsze prawidła informatyki. Pozwala to uniknąć w przyszłości wielu kłopotów z niewydajnym, niezrozumiałym i trudnym do utrzymania kodem.

Oto zaktualizowane i uzupełnione wydanie znakomitego podręcznika dla początkujących, dzięki któremu zdobędziesz solidne podstawy informatyki i programowania w Javie. Wyjaśniono tu szereg skomplikowanych tematów, rozłożonych na mniejsze zagadnienia, z których każde zostało opatrzone zrozumiałymi przykładami. Książka zawiera mnóstwo ćwiczeń, które sprawią, że zaczniesz kreatywnie podchodzić do programowania, a odkrywanie relacji między danymi wejścia i wyjścia, klasami, metodami i obiektami przyniesie Ci prawdziwą satysfakcję. Duży nacisk położono na właściwe słownictwo i... właśnie tworzenie programów. Zapoznasz się więc z różnymi strategiami projektowania, pisania, testowania i debugowania programów. Liczne przykłady kodu, ćwiczenia, podsumowania, porady i wskazówki stanowią wspaniałe uzupełnienie prezentowanych treści.

W tej książce między innymi:

  • podstawowe koncepcje programowania
  • zmienne, wartości, zarządzanie pamięcią, operacje wejścia-wyjścia
  • operacje logiczne, pętle i referencje
  • obiekty, tablice, klasy i ich projektowanie
  • konstruktory, interfejsy, detektory zdarzeń

Wstęp 9

1. Programowanie komputerowe 15

  • Czym jest komputer? 15
  • Czym jest programowanie? 16
  • Program "Witaj, świecie!" 17
  • Kompilowanie programów w języku Java 18
  • Wyświetlanie dwóch komunikatów 20
  • Formatowanie kodu źródłowego 21
  • Używanie sekwencji ucieczki 22
  • Czym jest informatyka? 23
  • Debugowanie programów 23
  • Słownictwo 24
  • Ćwiczenia 26

2. Zmienne i operatory 29

  • Deklarowanie zmiennych 29
  • Przypisywanie zmiennym wartości 30
  • Diagramy pamięci 31
  • Wyświetlanie wartości zmiennych 32
  • Operatory arytmetyczne 33
  • Liczby zmiennoprzecinkowe 34
  • Błędy zaokrągleń 35
  • Operatory działające na łańcuchach znakowych 36
  • Komunikaty o błędzie kompilatora 37
  • Inne rodzaje błędów 38
  • Słownictwo 39
  • Ćwiczenia 41

3. Wejście i wyjście 43

  • Klasa System 43
  • Klasa Scanner 44
  • Składniki języka 45
  • Literały i stałe 46
  • Formatowanie danych wyjściowych 48
  • Czytanie komunikatów o błędzie 49
  • Operatory rzutowania typu 50
  • Operator reszty z dzielenia 51
  • Łączenie wszystkiego w całość 52
  • "Bug" w klasie Scanner 53
  • Słownictwo 54
  • Ćwiczenia 55

4. Metody i testowanie 59

  • Definiowanie nowych metod 59
  • Przepływ wykonania 60
  • Parametry i argumenty 61
  • Wiele parametrów 63
  • Diagramy stosu 64
  • Metody matematyczne 65
  • Kompozycja 66
  • Wartości zwracane 67
  • Programowanie przyrostowe 68
  • Słownictwo 70
  • Ćwiczenia 71

5. Warunki i operacje logiczne 75

  • Operatory relacyjne 75
  • Instrukcja if-else 76
  • Tworzenie łańcuchów i zagnieżdżanie 78
  • Instrukcja switch 79
  • Operatory logiczne 80
  • Prawa De Morgana 81
  • Zmienne logiczne (boolowskie) 82
  • Metody typu boolean 83
  • Walidacja danych wejściowych 84
  • Przykładowy program 85
  • Słownictwo 86
  • Ćwiczenia 87

6. Pętle i łańcuchy znakowe 91

  • Instrukcja while 91
  • Inkrementacja i dekrementacja 93
  • Instrukcja for 93
  • Pętle zagnieżdżone 95
  • Znaki 96
  • Której pętli użyć 97
  • Iteracja po łańcuchu znakowym 98
  • Metoda indexOf 99
  • Podłańcuchy znakowe 100
  • Porównywanie łańcuchów znakowych 100
  • Formatowanie łańcuchów znakowych 101
  • Słownictwo 102
  • Ćwiczenia 103

7. Tablice i referencje 107

  • Tworzenie tablic 108
  • Dostęp do elementów tablic 109
  • Wyświetlanie tablic 110
  • Kopiowanie tablic 111
  • Przechodzenie przez tablice 113
  • Generowanie liczb losowych 114
  • Budowanie histogramu 115
  • Rozszerzona pętla for 116
  • Zliczanie znaków 117
  • Słownictwo 119
  • Ćwiczenia 120

8. Metody rekurencyjne 123

  • Rekurencyjne metody niezwracające wartości 123
  • Rekurencyjne diagramy stosu 124
  • Metody zwracające wartość 125
  • Akt wiary 127
  • Odliczanie rekurencyjne 129
  • System liczb binarnych 130
  • Binarna metoda rekurencyjna 131
  • Zadania z serwisu CodingBat 132
  • Słownictwo 134
  • Ćwiczenia 135

9. Obiekty niezmienne 139

  • Zmienne proste kontra obiekty 139
  • Słowo kluczowe null 141
  • Niezmienność łańcuchów znakowych 141
  • Klasy opakowujące 142
  • Argumenty wiersza poleceń 144
  • Walidacja argumentów 145
  • Arytmetyka wartości typu BigInteger 146
  • Projektowanie przyrostowe 147
  • Więcej uogólniania 149
  • Słownictwo 151
  • Ćwiczenia 151

10. Obiekty zmienne 157

  • Obiekty klasy Point 157
  • Obiekty jako parametry 158
  • Obiekty jako wartości zwracane 159
  • Zmienność obiektów klasy Rectangle 160
  • Aliasy raz jeszcze 161
  • Źródła biblioteki języka Java 163
  • Diagramy klas 163
  • Zasięg raz jeszcze 164
  • Oczyszczanie pamięci 165
  • Obiekty zmienne kontra obiekty niezmienne 166
  • Obiekty klasy StringBuilder 167
  • Słownictwo 168
  • Ćwiczenia 169

11. Projektowanie klas 171

  • Klasa Time 171
  • Konstruktory 172
  • Konstruktory z wartościami 174
  • Gettery i settery 175
  • Wyświetlanie obiektów 176
  • Metoda toString 177
  • Metoda equals 178
  • Dodawanie obiektów klasy Time 180
  • Słownictwo 182
  • Ćwiczenia 183

12. Tablice obiektów 185

  • Obiekty klasy Card 185
  • Metoda toString klasy Card 187
  • Zmienne klasy 188
  • Metoda compareTo 189
  • Niezmienność obiektów klasy Card 190
  • Tablica obiektów klasy Card 191
  • Wyszukiwanie sekwencyjne 193
  • Wyszukiwanie binarne 193
  • Śledzenie wykonania kodu 195
  • Słownictwo 196
  • Ćwiczenia 196

13. Obiekty zawierające tablice 199

  • Talie kart 199
  • Tasowanie talii kart 200
  • Sortowanie przez wybieranie 202
  • Sortowanie przez scalanie 202
  • Podtalie 203
  • Scalanie talii 204
  • Dodanie rekurencji 205
  • Kontekst statyczny 206
  • Stosy kart 207
  • Granie w wojnę 209
  • Słownictwo 210
  • Ćwiczenia 211

14. Rozszerzanie klas 215

  • Klasa CardCollection 215
  • Dziedziczenie 217
  • Rozdawanie kart 219
  • Klasa Player 220
  • Klasa Eights 222
  • Relacje pomiędzy klasami 224
  • Słownictwo 225
  • Ćwiczenia 226

15. Tablice tablic 229

  • Gra w życie autorstwa Johna Conwaya 229
  • Klasa Cell 231
  • Tablice dwuwymiarowe 232
  • Klasa GridCanvas 233
  • Inne metody klasy GridCanvas 234
  • Rozpoczynanie gry 235
  • Pętla symulacji 236
  • Obsługa wyjątków 237
  • Liczenie sąsiadów 238
  • Aktualizacja siatki 239
  • Słownictwo 241
  • Ćwiczenia 241

16. Ponowne używanie klas 245

  • Mrówka Langtona 245
  • Refaktoryzacja 247
  • Klasy abstrakcyjne 248
  • Diagram UML 250
  • Słownictwo 251
  • Ćwiczenia 251

17. Tematy zaawansowane 253

  • Obiekty klasy Polygon 253
  • Dodawanie koloru 254
  • Wielokąty foremne 255
  • Więcej konstruktorów 257
  • Początkowy rysunek 258
  • Migające wielokąty 260
  • Interfejsy 261
  • Detektory zdarzeń 263
  • Timery 266
  • Słownictwo 267
  • Ćwiczenia 267

A. Narzędzia 269

B. Javadoc 279

C. Grafika 287

D. Debugowanie 293

  • Title: Myśl w języku Java! Nauka programowania. Wydanie II
  • Author: Allen B. Downey, Chris Mayfield
  • Original title: Think Java: How to Think Like a Computer Scientist, 2nd Edition
  • Translation: Łukasz Suma
  • ISBN: 978-83-283-6720-3, 9788328367203
  • Date of issue: 2020-11-16
  • Format: Ebook
  • Item ID: mysja2
  • Publisher: Helion