Java. Przewodnik dla początkujących. Wydanie VIII (ebook)(audiobook)(audiobook)
- Autor:
- Herbert Schildt
- Wydawnictwo:
- Helion
- Wydawnictwo:
- Helion
- Ocena:
- 4.9/6 Opinie: 22
- Stron:
- 552
- Druk:
- oprawa twarda
- 3w1 w pakiecie:
-
PDFePubMobi
Opis książki
Czytaj fragment
Java jest ceniona przez programistów za dojrzałość i nowoczesność. Jako jeden z nielicznych języków miała zasadniczy wpływ na ewolucję programowania i określenie standardów tworzenia kodu. Cały czas jest dynamicznie rozwijana i od lat pozostaje w awangardzie innowacyjności. Na uwagę zasługuje wszechstronność Javy: to język, który pozwala na tworzenie stron WWW, aplikacji webowych, mobilnych oraz wysoko specjalistycznego oprogramowania dla przeróżnych urządzeń technicznych. Jest to możliwe między innymi dzięki licznym bibliotekom i narzędziom wspierającym proces kodowania. Mimo upływu lat Java wciąż pozostaje bardzo mądrym wyborem dla przyszłych deweloperów.
Ta książka jest ósmym wydaniem znakomitego podręcznika programowania dla początkujących, starannie zaktualizowanym i uzupełnionym o informacje dotyczące edycji 11. Zawiera podstawową wiedzę o kompilacji i uruchamianiu programu w Javie oraz o słowach kluczowych i istotnych konstrukcjach w tym języku - to na początek. Potem krok po kroku przedstawia kolejne, coraz bardziej zaawansowane zagadnienia dotyczące obiektów, dziedziczenia czy wyjątków, a także współbieżności, typów sparametryzowanych, wyrażeń lambda oraz modułów. Poszczególne partie materiału zostały bogato uzupełnione przykładami kodu z komentarzami, jak również praktycznymi ćwiczeniami, testami sprawdzającymi, wskazówkami i dodatkowymi informacjami. Podręcznik jest przejrzysty, napisany jasnym i zrozumiałym językiem, co zdecydowanie ułatwia naukę.
W tej książce między innymi:
- solidne podstawy Javy i programowania obiektowego
- operacje wejścia-wyjścia oraz obsługa wyjątków
- programowanie wielowątkowe
- zagadnienia zaawansowane: wyrażenia lambda i referencje metod
- moduły, usługi i biblioteka Swing
Java: zdobądź kluczowe umiejętności i utrwal najlepsze nawyki programisty!
O autorze
1 Herbert SchildtHerb Schildt - jest jednym z najpopularniejszych autorów książek o programowaniu. Jest autorytetem w sprawach języków C, C++, Java i C#, a także doskonałym programistą systemu Windows. Był członkiem komitetu ANSI/ISO, który dokonał standaryzacji języka C++. Jego książki sprzedały się na całym świecie w ponad 3 milionach egzemplarzy i zostały przetłumaczone na większość języków.
Szczegóły książki
- Tytuł oryginału:
- Java: A Beginner's Guide, Eighth Edition
- Tłumaczenie:
- Piotr Rajca, Jaromir Senczyk
- ISBN Książki drukowanej:
- 978-83-283-5879-9, 9788328358799
- Data wydania książki drukowanej:
- 2020-02-04
- ISBN Ebooka:
- 978-83-283-5881-2, 9788328358812
- Data wydania ebooka:
-
2020-02-04
Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@helion.pl.
- Format:
- 164x239
- Numer z katalogu:
- 95297
- Rozmiar pliku Pdf:
- 3.7MB
- Rozmiar pliku ePub:
- 3.8MB
- Rozmiar pliku Mobi:
- 3.8MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Zgłoś erratę
- Kategorie:
Programowanie » Java - Programowanie
Spis treści
- Historia i filozofia Javy 22
- Pochodzenie Javy 22
- Java a języki C i C++ 23
- Wpływ Javy na Internet 23
- Magiczny kod bajtowy 25
- Coś więcej niż aplety 26
- Szybszy harmonogram udostępniania 27
- Terminologia Javy 27
- Programowanie obiektowe 27
- Hermetyzacja 29
- Polimorfizm 29
- Dziedziczenie 29
- Java Development Kit 30
- Pierwszy prosty program 31
- Wprowadzenie tekstu programu 31
- Kompilowanie programu 32
- Pierwszy program wiersz po wierszu 33
- Obsługa błędów składni 34
- Drugi prosty program 35
- Inne typy danych 37
- Przykład 1.1. Zamiana galonów na litry 38
- Dwie instrukcje sterujące 39
- Instrukcja if 39
- Pętla for 40
- Bloki kodu 41
- Średnik i pozycja kodu w wierszu 42
- Wcięcia 43
- Przykład 1.2. Ulepszony konwerter galonów na litry 43
- Słowa kluczowe języka Java 44
- Identyfikatory 45
- Biblioteki klas 45
- Test sprawdzający 46
- Dlaczego typy danych są tak ważne 47
- Typy proste 48
- Typy całkowite 48
- Typy zmiennoprzecinkowe 49
- Znaki 50
- Typ logiczny 51
- Przykład 2.1. Jak daleko uderzył piorun? 52
- Literały 53
- Literały szesnastkowe, ósemkowe i binarne 53
- Specjalne sekwencje znaków 53
- Literały łańcuchowe 54
- Zmienne 55
- Inicjalizacja zmiennej 55
- Dynamiczna inicjalizacja 55
- Zasięg deklaracji i czas istnienia zmiennych 56
- Operatory 58
- Operatory arytmetyczne 58
- Inkrementacja i dekrementacja 59
- Operatory relacyjne i logiczne 60
- Warunkowe operatory logiczne 62
- Operator przypisania 63
- Skrótowe operatory przypisania 63
- Konwersje typów w instrukcjach przypisania 64
- Rzutowanie typów niezgodnych 65
- Priorytet operatorów 67
- Przykład 2.2. Tabela prawdy dla operatorów logicznych 67
- Wyrażenia 68
- Konwersja typów w wyrażeniach 68
- Odstępy i nawiasy 70
- Test sprawdzający 70
- Wprowadzanie znaków z klawiatury 71
- Instrukcja if 72
- Zagnieżdżanie instrukcji if 73
- Drabinka if-else-if 74
- Instrukcja switch 75
- Zagnieżdżanie instrukcji switch 78
- Przykład 3.1. Rozpoczynamy budowę systemu pomocy 78
- Pętla for 80
- Wariacje na temat pętli for 81
- Brakujące elementy 82
- Pętla nieskończona 83
- Pętle bez ciała 83
- Deklaracja zmiennych sterujących wewnątrz pętli 84
- Rozszerzona pętla for 85
- Pętla while 85
- Pętla do-while 86
- Przykład 3.2. Ulepszamy system pomocy 88
- Przerywanie pętli instrukcją break 90
- Zastosowanie break jako formy goto 91
- Zastosowanie instrukcji continue 95
- Przykład 3.3. Końcowa wersja systemu pomocy 96
- Pętle zagnieżdżone 99
- Test sprawdzający 99
- Podstawy klas 101
- Ogólna postać klasy 102
- Definiowanie klasy 102
- Jak powstają obiekty 105
- Referencje obiektów i operacje przypisania 105
- Metody 106
- Dodajemy metodę do klasy Vehicle 106
- Powrót z metody 108
- Zwracanie wartości 109
- Stosowanie parametrów 110
- Dodajemy sparametryzowaną metodę do klasy Vehicle 112
- Przykład 4.1. System pomocy jako klasa 113
- Konstruktory 117
- Konstruktory z parametrami 118
- Dodajemy konstruktor do klasy Vehicle 119
- Operator new 120
- Odzyskiwanie pamięci 120
- Słowo kluczowe this 121
- Test sprawdzający 122
- Tablice 123
- Tablice jednowymiarowe 124
- Przykład 5.1. Sortowanie tablicy 126
- Tablice wielowymiarowe 128
- Tablice dwuwymiarowe 128
- Tablice nieregularne 129
- Tablice o trzech i więcej wymiarach 130
- Inicjalizacja tablic wielowymiarowych 130
- Alternatywna składnia deklaracji tablic 131
- Przypisywanie referencji tablic 131
- Wykorzystanie składowej length 132
- Przykład 5.2. Klasa Queue 134
- Styl for-each pętli for 137
- Iteracje w tablicach wielowymiarowych 139
- Zastosowania rozszerzonej pętli for 140
- Łańcuchy znaków 141
- Tworzenie łańcuchów 141
- Operacje na łańcuchach 142
- Tablice łańcuchów 144
- Łańcuchy są niezmienne 144
- Stosowanie łańcuchów do sterowania instrukcją switch 145
- Wykorzystanie argumentów wywołania programu 146
- Stosowanie wnioskowania typów w zmiennych lokalnych 147
- Wnioskowanie typów zmiennych lokalnych w przypadku typów referencyjnych 149
- Stosowanie wnioskowania typów zmiennych lokalnych w pętlach 150
- Ograniczenia var 151
- Operatory bitowe 152
- Operatory bitowe AND, OR, XOR i NOT 152
- Operatory przesunięcia 156
- Skrótowe bitowe operatory przypisania 157
- Przykład 5.3. Klasa ShowBits 158
- Operator ? 160
- Test sprawdzający 161
- Kontrola dostępu do składowych klasy 163
- Modyfikatory dostępu w Javie 164
- Przykład 6.1. Ulepszamy klasę Queue 167
- Przekazywanie obiektów do metod 168
- Sposób przekazywania argumentów 169
- Zwracanie obiektów 171
- Przeciążanie metod 173
- Przeciążanie konstruktorów 177
- Przykład 6.2. Przeciążamy konstruktor klasy Queue 178
- Rekurencja 181
- Słowo kluczowe static 182
- Bloki static 185
- Przykład 6.3. Algorytm Quicksort 186
- Klasy zagnieżdżone i klasy wewnętrzne 188
- Zmienne liczby argumentów 190
- Metody o zmiennej liczbie argumentów 191
- Przeciążanie metod o zmiennej liczbie argumentów 193
- Zmienna liczba argumentów i niejednoznaczność 194
- Test sprawdzający 195
- Podstawy dziedziczenia 197
- Dostęp do składowych a dziedziczenie 200
- Konstruktory i dziedziczenie 202
- Użycie słowa kluczowego super do wywołania konstruktora klasy bazowej 203
- Użycie słowa kluczowego super do dostępu do składowych klasy bazowej 207
- Przykład 7.1. Tworzymy hierarchię klas Vehicle 207
- Wielopoziomowe hierarchie klas 210
- Kiedy wywoływane są konstruktory? 212
- Referencje klasy bazowej i obiekty klasy pochodnej 213
- Przesłanianie metod 217
- Przesłanianie metod i polimorfizm 219
- Po co przesłaniać metody? 220
- Zastosowanie przesłaniania metod w klasie TwoDShape 221
- Klasy abstrakcyjne 224
- Słowo kluczowe final 227
- final zapobiega przesłanianiu 227
- final zapobiega dziedziczeniu 227
- Użycie final dla zmiennych składowych 228
- Klasa Object 229
- Test sprawdzający 230
- Pakiety 231
- Definiowanie pakietu 232
- Wyszukiwanie pakietów i zmienna CLASSPATH 233
- Prosty przykład pakietu 233
- Pakiety i dostęp do składowych 234
- Przykład dostępu do pakietu 235
- Składowe chronione 236
- Import pakietów 238
- Biblioteka klas Java używa pakietów 239
- Interfejsy 239
- Implementacje interfejsów 241
- Referencje interfejsu 244
- Przykład 8.1. Tworzymy interfejs Queue 245
- Zmienne w interfejsach 249
- Interfejsy mogą dziedziczyć 250
- Domyślne metody interfejsów 251
- Podstawowe informacje o metodach domyślnych 252
- Praktyczny przykład metody domyślnej 253
- Problemy wielokrotnego dziedziczenia 254
- Stosowanie metod statycznych w interfejsach 255
- Stosowanie metod prywatnych w interfejsach 256
- Ostatnie uwagi o pakietach i interfejsach 257
- Test sprawdzający 257
- Hierarchia wyjątków 260
- Podstawy obsługi wyjątków 260
- Słowa kluczowe try i catch 260
- Prosty przykład wyjątku 261
- Konsekwencje nieprzechwycenia wyjątku 263
- Wyjątki umożliwiają obsługę błędów 264
- Użycie wielu klauzul catch 265
- Przechwytywanie wyjątków klas pochodnych 265
- Zagnieżdżanie bloków try 267
- Generowanie wyjątku 268
- Powtórne generowanie wyjątku 268
- Klasa Throwable 269
- Klauzula finally 271
- Użycie klauzuli throws 272
- Trzy dodatkowe możliwości wyjątków 273
- Wyjątki wbudowane w Javę 274
- Tworzenie klas pochodnych wyjątków 276
- Przykład 9.1. Wprowadzamy wyjątki w klasie Queue 278
- Test sprawdzający 280
- Strumienie wejścia i wyjścia 284
- Strumienie bajtowe i strumienie znakowe 284
- Klasy strumieni bajtowych 284
- Klasy strumieni znakowych 284
- Strumienie predefiniowane 285
- Używanie strumieni bajtowych 286
- Odczyt wejścia konsoli 286
- Zapis do wyjścia konsoli 288
- Odczyt i zapis plików za pomocą strumieni bajtowych 289
- Odczyt z pliku 289
- Zapis w pliku 292
- Automatyczne zamykanie pliku 294
- Odczyt i zapis danych binarnych 297
- Przykład 10.1. Narzędzie do porównywania plików 299
- Pliki o dostępie swobodnym 300
- Strumienie znakowe 302
- Odczyt konsoli za pomocą strumieni znakowych 303
- Obsługa wyjścia konsoli za pomocą strumieni znakowych 305
- Obsługa plików za pomocą strumieni znakowych 306
- Klasa FileWriter 307
- Klasa FileReader 307
- Zastosowanie klas opakowujących do konwersji łańcuchów numerycznych 309
- Przykład 10.2. System pomocy wykorzystujący pliki 310
- Test sprawdzający 316
- Podstawy wielowątkowości 317
- Klasa Thread i interfejs Runnable 318
- Tworzenie wątku 319
- Usprawnienie i dwie modyfikacje 322
- Przykład 11.1. Tworzymy klasę pochodną klasy Thread 325
- Tworzenie wielu wątków 327
- Jak ustalić, kiedy wątek zakończył działanie? 330
- Priorytety wątków 332
- Synchronizacja 335
- Synchronizacja metod 335
- Synchronizacja instrukcji 338
- Komunikacja międzywątkowa 340
- Przykład użycia metod wait() i notify() 340
- Wstrzymywanie, wznawianie i kończenie działania wątków 345
- Przykład 11.2. Wykorzystanie głównego wątku 348
- Test sprawdzający 349
- Wyliczenia 352
- Podstawy wyliczeń 352
- Wyliczenia są klasami 354
- Metody values() i valueOf() 354
- Konstruktory, metody, zmienne instancji a wyliczenia 355
- Dwa ważne ograniczenia 357
- Typy wyliczeniowe dziedziczą po klasie Enum 357
- Przykład 12.1. Komputerowo sterowana sygnalizacja świetlna 358
- Automatyczne opakowywanie 362
- Typy opakowujące 363
- Podstawy automatycznego opakowywania 364
- Automatyczne opakowywanie i metody 365
- Automatyczne opakowywanie i wyrażenia 366
- Przestroga 368
- Import składowych statycznych 368
- Adnotacje (metadane) 370
- Test sprawdzający 373
- Podstawy typów sparametryzowanych 376
- Prosty przykład typów sparametryzowanych 376
- Parametryzacja dotyczy tylko typów obiektowych 379
- Typy sparametryzowane różnią się dla różnych argumentów 379
- Klasa sparametryzowana o dwóch parametrach 380
- Ogólna postać klasy sparametryzowanej 381
- Ograniczanie typów 381
- Stosowanie argumentów wieloznacznych 384
- Ograniczanie argumentów wieloznacznych 386
- Metody sparametryzowane 388
- Konstruktory sparametryzowane 390
- Interfejsy sparametryzowane 390
- Przykład 13.1. Sparametryzowana klasa Queue 393
- Typy surowe i tradycyjny kod 396
- Wnioskowanie typów i operator diamentowy 399
- Wnioskowanie typów zmiennych lokalnych a typy sparametryzowane 400
- Wymazywanie 400
- Błędy niejednoznaczności 401
- Ograniczenia związane z typami sparametryzowanymi 401
- Zakaz tworzenia instancji parametru typu 402
- Ograniczenia dla składowych statycznych 402
- Ograniczenia tablic sparametryzowanych 402
- Ograniczenia związane z wyjątkami 403
- Dalsze studiowanie typów sparametryzowanych 403
- Test sprawdzający 403
- Przedstawienie wyrażeń lambda 406
- Podstawowe informacje o wyrażeniach lambda 406
- Interfejsy funkcyjne 407
- Wyrażenia lambda w działaniu 409
- Blokowe wyrażenia lambda 412
- Sparametryzowane interfejsy funkcyjne 414
- Przykład 14.1. Przekazywanie wyrażenia lambda jako argumentu 415
- Wyrażenia lambda i przechwytywanie zmiennych 419
- Zgłaszanie wyjątków w wyrażeniach lambda 420
- Referencje metod 421
- Referencje metod statycznych 422
- Referencje metod instancyjnych 423
- Referencje konstruktorów 427
- Predefiniowane interfejsy funkcyjne 429
- Test sprawdzający 430
- Podstawowe informacje o modułach 434
- Przykład prostego modułu 435
- Kompilowanie i uruchamianie przykładowej aplikacji 438
- Dokładniejsze informacje o instrukcjach requires i exports 439
- java.base i moduły platformy 440
- Stary kod i moduł nienazwany 441
- Eksportowanie do konkretnego modułu 442
- Wymagania przechodnie 443
- Przykład 15.1. Eksperymenty z instrukcją requires transitive 444
- Stosowanie usług 447
- Podstawowe informacje o usługach i dostawcach usług 447
- Słowa kluczowe związane z usługami 448
- Przykład stosowania usług i modułów 448
- Dodatkowe cechy modułów 454
- Moduły otwarte 455
- Instrukcja opens 455
- requires static 455
- Dalsze samodzielne poznawanie modułów 456
- Test sprawdzający 456
- Pochodzenie i filozofia Swing 460
- Komponenty i kontenery 461
- Komponenty 461
- Kontenery 462
- Panele kontenerów szczytowych 462
- Menedżery układu 463
- Pierwszy program wykorzystujący Swing 463
- Pierwszy program Swing wiersz po wierszu 465
- Obsługa zdarzeń w Swing 467
- Zdarzenia 468
- Źródła zdarzeń 468
- Obiekty nasłuchujące 468
- Klasy zdarzeń i interfejsy obiektów nasłuchujących 469
- Komponent JButton 469
- Komponent JTextField 472
- Komponent JCheckBox 475
- Komponent JList 477
- Przykład 16.1. Porównywanie plików - aplikacja Swing 480
- Wykorzystanie anonimowych klas wewnętrznych lub wyrażeń lambda do obsługi zdarzeń 485
- Test sprawdzający 486
- Rozdział 1. Podstawy Javy 489
- Rozdział 2. Typy danych i operatory 491
- Rozdział 3. Instrukcje sterujące 492
- Rozdział 4. Wprowadzenie do klas, obiektów i metod 494
- Rozdział 5. Więcej typów danych i operatorów 495
- Rozdział 6. Więcej o metodach i klasach 499
- Rozdział 7. Dziedziczenie 502
- Rozdział 8. Pakiety i interfejsy 504
- Rozdział 9. Obsługa wyjątków 506
- Rozdział 10. Obsługa wejścia i wyjścia 508
- Rozdział 11. Programowanie wielowątkowe 511
- Rozdział 12. Typy wyliczeniowe, automatyczne opakowywanie, import składowych statycznych i adnotacje 513
- Rozdział 13. Typy sparametryzowane 516
- Rozdział 14. Wyrażenia lambda i referencje metod 519
- Rozdział 15. Moduły 522
- Rozdział 16. Wprowadzenie do Swing 523
- Znaczniki javadoc 529
- @author 530
- {@code} 530
- @deprecated 531
- {@docRoot} 531
- @exception 531
- @hidden 531
- {@index} 531
- {@inheritDoc} 531
- {@link} 531
- {@linkplain} 532
- {@literal} 532
- @param 532
- @provides 532
- @return 532
- @see 532
- @since 533
- {@summary} 533
- @throws 533
- @uses 533
- {@value} 533
- @version 533
- Ogólna postać komentarza dokumentacyjnego 533
- Wynik działania programu javadoc 534
- Przykład użycia komentarzy dokumentacyjnych 534
- Podstawy JShell 539
- Wyświetlanie, edycja i ponowne wykonywanie kodu 541
- Dodanie metody 542
- Utworzenie klasy 543
- Stosowanie interfejsu 543
- Przetwarzanie wyrażeń i wbudowane zmienne 544
- Importowanie pakietów 545
- Wyjątki 546
- Inne polecenia JShell 546
- Dalsze poznawanie możliwości JShell 547
- Modyfikatory transient i volatile 549
- instanceof 550
- strictfp 550
- assert 550
- Metody rodzime 551
- Inna postać this 551
O autorze 13
O redaktorze merytorycznym 14
Wstęp 15
1. Podstawy Javy 21
2. Typy danych i operatory 47
3. Instrukcje sterujące 71
4. Wprowadzenie do klas, obiektów i metod 101
5. Więcej typów danych i operatorów 123
6. Więcej o metodach i klasach 163
7. Dziedziczenie 197
8. Pakiety i interfejsy 231
9. Obsługa wyjątków 259
10. Obsługa wejścia i wyjścia 283
11. Programowanie wielowątkowe 317
12. Typy wyliczeniowe, automatyczne opakowywanie, import składowych statycznych i adnotacje 351
13. Typy sparametryzowane 375
14. Wyrażenia lambda i referencje metod 405
15. Moduły 433
16. Wprowadzenie do biblioteki Swing 459
A. Rozwiązania testów sprawdzających 489
B. Komentarze dokumentacyjne 529
C. Kompiluj i uruchamiaj proste programy w jednym kroku 537
D. Wprowadzenie do JShell 539
E. Więcej słów kluczowych języka Java 549
Oceny i opinie klientów (22)
(12)
(3)
(3)
(1)
(2)
(1)
6 oceniona przez: 2015-04-15
6 oceniona przez: 2012-12-31
6 oceniona przez: Waldemar Kotarba, Specjalista ds. Jakości Oprogramowania 2013-01-17
6 oceniona przez: 2015-03-07
6 oceniona przez: Paweł Szczepaniak, 2012-10-16
6 oceniona przez: 2013-03-09
6 oceniona przez: 2014-08-13
6 oceniona przez: Szymon, 2019-04-24
6 oceniona przez: 2018-11-04
6 oceniona przez: Marek, 2020-06-24
6 oceniona przez: Dominik linkowski, 2017-01-02
6 oceniona przez: 2016-01-28
5 oceniona przez: 2015-12-13
5 oceniona przez: Krzysztof Morawski, informatyk 2013-01-18
5 oceniona przez: Bartłomiej K, Inżynier 2017-02-26
4 oceniona przez: AZ, Specjalista QA 2014-12-25
4 oceniona przez: 2014-08-24
4 oceniona przez: Luke, student 2013-07-25
3 oceniona przez: 2018-12-18
2 oceniona przez: Lord Sumo, supervillain 2014-05-15
2 oceniona przez: informatyk 2018-02-17
1 oceniona przez: 2019-03-19
więcej opinii