Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ JAVA

Java. Przewodnik dla początkujących. Wydanie VII Język: 1

978-83-283-4611-6

Cena Brutto: 89.00

Cena netto: 84.76

Ilość:
Wersja: Drukowana
Autor Herbert Schildt
Liczba_stron 600
Wydawnictwo Helion
Oprawa twarda
Data_Wydania 2018-11-09

Java. Przewodnik dla początkujących. Wydanie VII


Java jest jednym z kilku języków programowania, które niemal od początku istotnie wpływały na kształt programowania jako takiego. Już w początkowej fazie swojej historii, w 1995 r., Java spowodowała prawdziwą rewolucję w programowaniu. Stała się jedną z przyczyn skokowego rozwoju technologii internetowych i określiła nowe standardy projektowania języków programowania. Do dzisiaj zaliczana jest do awangardy, skupiając wokół siebie społeczność osób ciągle poszukujących innowacji. Oznacza to, że solidne podstawy programowania w Javie są znakomitą inwestycją dla każdego programisty, który swoją przyszłość wiąże z rozwojem najnowszych technologii informatycznych.


Ta książka jest kolejnym wydaniem wyjątkowego podręcznika, zaktualizowanym o informacje dotyczące Javy SE 9. Dzięki niej zdobędziesz solidne podstawy programowania w Javie, nawet jeśli nie masz żadnego przygotowania w tym kierunku. Poszczególne zagadnienia przedstawiono tu bardzo klarownie i przejrzyście, krok po kroku, uzupełniając je o liczne przykłady, testy sprawdzające i projekty do samodzielnej pracy. Najpierw zapoznasz się z podstawowymi informacjami, takimi jak kompilacja i uruchomienie programu w Javie. Następnie nauczysz się stosować słowa kluczowe i konstrukcje, które tworzą rdzeń tego języka. Stopniowo przejdziesz do zaawansowanych tematów, włączając w to programowanie wielowątkowe, typy sparametryzowane, wyrażenia lambda oraz moduły. Na końcu zapoznasz się z biblioteką Swing.


Najważniejsze zagadnienia:

  • Historia Javy, jej cechy szczególne i przygotowanie środowiska pracy
  • Podstawowe elementy kodu i zasady programowania obiektowego
  • Dziedziczenie, pakiety i interfejsy
  • Praca na plikach i operacje wejścia-wyjścia
  • Moduły i usługi
  • Technologia JavaFX


O autorze 13

O redaktorze technicznym 14

Wstęp 15

1. Podstawy Javy 21

  • Pochodzenie Javy 22
  • Java a języki C i C++ 22
  • Wpływ Javy na Internet 23
    • Java uprościła programowanie aplikacji internetowych 23
    • Aplety Javy 24
    • Bezpieczeństwo 24
    • Przenośność 25
  • Magiczny kod bajtowy 25
  • Coś więcej niż aplety 26
  • Terminologia Javy 27
  • Programowanie obiektowe 27
    • Hermetyzacja 28
    • Polimorfizm 29
    • Dziedziczenie 29
  • Java Development Kit 29
  • Pierwszy prosty program 30
    • Wprowadzenie tekstu programu 31
    • Kompilowanie programu 31
    • Pierwszy program wiersz po wierszu 32
  • Obsługa błędów składni 34
  • Drugi prosty program 34
  • Inne typy danych 36
  • Dwie instrukcje sterujące 38
    • Instrukcja if 38
    • Pętla for 40
  • Bloki kodu 41
  • Średnik i pozycja kodu w wierszu 42
  • Wcięcia 42
  • Słowa kluczowe języka Java 44
  • Identyfikatory 45
  • Biblioteki klas 45
  • Test sprawdzający 45

2. Typy danych i operatory 47

  • Dlaczego typy danych są tak ważne 47
  • Typy proste 48
    • Typy całkowite 48
    • Typy zmiennoprzecinkowe 49
    • Znaki 50
  • Typ logiczny 51
  • 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
  • Wyrażenia 68
    • Konwersja typów w wyrażeniach 68
    • Odstępy i nawiasy 70
  • Test sprawdzający 70

3. Instrukcje sterujące 71

  • 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
  • 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
  • Przerywanie pętli instrukcją break 90
  • Zastosowanie break jako formy goto 91
  • Zastosowanie instrukcji continue 95
  • Pętle zagnieżdżone 99
  • Test sprawdzający 99

4. Wprowadzenie do klas, obiektów i metod 101

  • 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
  • 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

5. Więcej typów danych i operatorów 123

  • Tablice 123
    • Tablice jednowymiarowe 124
  • 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
  • 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
  • Operatory bitowe 147
    • Operatory bitowe AND, OR, XOR i NOT 147
    • Operatory przesunięcia 151
    • Skrótowe bitowe operatory przypisania 153
  • Operator ? 155
  • Test sprawdzający 157

6. Więcej o metodach i klasach 159

  • Kontrola dostępu do składowych klasy 159
    • Modyfikatory dostępu w Javie 160
  • Przekazywanie obiektów do metod 164
    • Sposób przekazywania argumentów 165
  • Zwracanie obiektów 167
  • Przeciążanie metod 169
  • Przeciążanie konstruktorów 173
  • Rekurencja 177
  • Słowo kluczowe static 178
    • Bloki static 181
  • Klasy zagnieżdżone i klasy wewnętrzne 184
  • Zmienne liczby argumentów 186
    • Metody o zmiennej liczbie argumentów 187
    • Przeciążanie metod o zmiennej liczbie argumentów 189
    • Zmienna liczba argumentów i niejednoznaczność 190
  • Test sprawdzający 191

7. Dziedziczenie 193

  • Podstawy dziedziczenia 193
  • Dostęp do składowych a dziedziczenie 196
  • Konstruktory i dziedziczenie 198
  • Użycie słowa kluczowego super do wywołania konstruktora klasy bazowej 199
  • Użycie słowa kluczowego super do dostępu do składowych klasy bazowej 203
  • Wielopoziomowe hierarchie klas 206
  • Kiedy wywoływane są konstruktory? 208
  • Referencje klasy bazowej i obiekty klasy pochodnej 209
  • Przesłanianie metod 213
  • Przesłanianie metod i polimorfizm 215
  • Po co przesłaniać metody? 216
    • Zastosowanie przesłaniania metod w klasie TwoDShape 217
  • Klasy abstrakcyjne 220
  • Słowo kluczowe final 223
    • final zapobiega przesłanianiu 223
    • final zapobiega dziedziczeniu 223
    • Użycie final dla zmiennych składowych 224
  • Klasa Object 225
  • Test sprawdzający 226

8. Pakiety i interfejsy 227

  • Pakiety 227
    • Definiowanie pakietu 228
    • Wyszukiwanie pakietów i zmienna CLASSPATH 229
    • Prosty przykład pakietu 229
  • Pakiety i dostęp do składowych 230
    • Przykład dostępu do pakietu 231
  • Składowe chronione 232
  • Import pakietów 234
  • Biblioteka klas Java używa pakietów 235
  • Interfejsy 235
  • Implementacje interfejsów 237
  • Referencje interfejsu 240
  • Zmienne w interfejsach 245
  • Interfejsy mogą dziedziczyć 246
  • Domyślne metody interfejsów 247
    • Podstawowe informacje o metodach domyślnych 248
    • Praktyczny przykład metody domyślnej 249
    • Problemy wielokrotnego dziedziczenia 250
  • Stosowanie metod statycznych w interfejsach 251
  • Stosowanie metod prywatnych w interfejsach 252
  • Ostatnie uwagi o pakietach i interfejsach 253
  • Test sprawdzający 253

9. Obsługa wyjątków 255

  • Hierarchia wyjątków 256
  • Podstawy obsługi wyjątków 256
    • Słowa kluczowe try i catch 256
    • Prosty przykład wyjątku 257
  • Konsekwencje nieprzechwycenia wyjątku 259
    • Wyjątki umożliwiają obsługę błędów 260
  • Użycie wielu klauzul catch 261
  • Przechwytywanie wyjątków klas pochodnych 261
  • Zagnieżdżanie bloków try 263
  • Generowanie wyjątku 264
    • Powtórne generowanie wyjątku 264
  • Klasa Throwable 265
  • Klauzula finally 267
  • Użycie klauzuli throws 268
  • Trzy dodatkowe możliwości wyjątków 269
  • Wyjątki wbudowane w Javę 270
  • Tworzenie klas pochodnych wyjątków 272
  • Test sprawdzający 276

10. Obsługa wejścia i wyjścia 279

  • Strumienie wejścia i wyjścia 280
  • Strumienie bajtowe i strumienie znakowe 280
  • Klasy strumieni bajtowych 280
  • Klasy strumieni znakowych 280
  • Strumienie predefiniowane 281
  • Używanie strumieni bajtowych 282
    • Odczyt wejścia konsoli 282
    • Zapis do wyjścia konsoli 284
  • Odczyt i zapis plików za pomocą strumieni bajtowych 285
    • Odczyt z pliku 285
    • Zapis w pliku 288
  • Automatyczne zamykanie pliku 290
  • Odczyt i zapis danych binarnych 292
  • Pliki o dostępie swobodnym 296
  • Strumienie znakowe 298
    • Odczyt konsoli za pomocą strumieni znakowych 298
    • Obsługa wyjścia konsoli za pomocą strumieni znakowych 301
  • Obsługa plików za pomocą strumieni znakowych 302
    • Klasa FileWriter 302
    • Klasa FileReader 303
  • Zastosowanie klas opakowujących do konwersji łańcuchów numerycznych 304
  • Test sprawdzający 311

11. Programowanie wielowątkowe 313

  • Podstawy wielowątkowości 313
  • Klasa Thread i interfejs Runnable 314
  • Tworzenie wątku 315
    • Usprawnienie i dwie modyfikacje 318
  • Tworzenie wielu wątków 323
  • Jak ustalić, kiedy wątek zakończył działanie? 326
  • Priorytety wątków 328
  • Synchronizacja 331
  • Synchronizacja metod 331
  • Synchronizacja instrukcji 334
  • Komunikacja międzywątkowa 336
    • Przykład użycia metod wait() i notify() 337
  • Wstrzymywanie, wznawianie i kończenie działania wątków 341
  • Test sprawdzający 346

12. Typy wyliczeniowe, automatyczne opakowywanie, import składowych statycznych i adnotacje 347

  • Wyliczenia 348
    • Podstawy wyliczeń 348
  • Wyliczenia są klasami 350
  • Metody values() i valueOf() 350
  • Konstruktory, metody, zmienne instancji a wyliczenia 351
    • Dwa ważne ograniczenia 353
  • Typy wyliczeniowe dziedziczą po klasie Enum 353
  • Automatyczne opakowywanie 358
  • Typy opakowujące 359
  • Podstawy automatycznego opakowywania 360
  • Automatyczne opakowywanie i metody 361
  • Automatyczne opakowywanie i wyrażenia 362
    • Przestroga 364
  • Import składowych statycznych 364
  • Adnotacje (metadane) 366
  • Test sprawdzający 369

13. Typy sparametryzowane 371

  • Podstawy typów sparametryzowanych 372
  • Prosty przykład typów sparametryzowanych 372
    • Parametryzacja dotyczy tylko typów obiektowych 375
    • Typy sparametryzowane różnią się dla różnych argumentów 375
    • Klasa sparametryzowana o dwóch parametrach 376
    • Ogólna postać klasy sparametryzowanej 377
  • Ograniczanie typów 377
  • Stosowanie argumentów wieloznacznych 380
  • Ograniczanie argumentów wieloznacznych 382
  • Metody sparametryzowane 384
  • Konstruktory sparametryzowane 386
  • Interfejsy sparametryzowane 386
  • Typy surowe i tradycyjny kod 392
  • Wnioskowanie typów i operator diamentowy 395
  • Wymazywanie 396
  • Błędy niejednoznaczności 396
  • Ograniczenia związane z typami sparametryzowanymi 397
    • Zakaz tworzenia instancji parametru typu 397
    • Ograniczenia dla składowych statycznych 397
    • Ograniczenia tablic sparametryzowanych 398
    • Ograniczenia związane z wyjątkami 399
  • Dalsze studiowanie typów sparametryzowanych 399
  • Test sprawdzający 399

14. Wyrażenia lambda i referencje metod 401

  • Przedstawienie wyrażeń lambda 402
    • Podstawowe informacje o wyrażeniach lambda 402
    • Interfejsy funkcyjne 403
    • Wyrażenia lambda w działaniu 405
    • Blokowe wyrażenia lambda 408
  • Sparametryzowane interfejsy funkcyjne 409
  • Wyrażenia lambda i przechwytywanie zmiennych 415
  • Zgłaszanie wyjątków w wyrażeniach lambda 416
  • Referencje metod 417
    • Referencje metod statycznych 417
    • Referencje metod instancyjnych 419
  • Referencje konstruktorów 423
  • Predefiniowane interfejsy funkcyjne 425
  • Test sprawdzający 426

15. Moduły 429

  • Podstawowe informacje o modułach 430
    • Przykład prostego modułu 431
    • Kompilowanie i uruchamianie przykładowej aplikacji 434
    • Dokładniejsze informacje o instrukcjach requires i exports 435
  • java.base i moduły platformy 436
  • Stary kod i moduł nienazwany 437
  • Eksportowanie do konkretnego modułu 438
  • Wymagania przechodnie 439
  • Stosowanie usług 443
    • Podstawowe informacje o usługach i dostawcach usług 444
    • Słowa kluczowe związane z usługami 444
    • Przykład stosowania usług i modułów 445
  • Dodatkowe cechy modułów 451
    • Moduły otwarte 451
    • Instrukcja opens 451
    • requires static 451
  • Dalsze samodzielne poznawanie modułów 452
  • Test sprawdzający 453

16. Wprowadzenie do Swing 455

  • Pochodzenie i filozofia Swing 456
  • Komponenty i kontenery 457
    • Komponenty 458
    • Kontenery 458
    • Panele kontenerów szczytowych 459
  • Menedżery układu 459
  • Pierwszy program wykorzystujący Swing 460
    • Pierwszy program Swing wiersz po wierszu 461
  • Obsługa zdarzeń w Swing 464
    • Zdarzenia 464
    • Obiekty nasłuchujące 465
    • Klasy zdarzeń i interfejsy obiektów nasłuchujących 465
  • Komponent JButton 465
  • Komponent JTextField 468
  • Komponent JCheckBox 471
  • Komponent JList 474
  • Wykorzystanie anonimowych klas wewnętrznych lub wyrażeń lambda do obsługi zdarzeń 481
  • Test sprawdzający 482

17. Wprowadzenie do JavaFX 485

  • Podstawowe pojęcia JavaFX 486
    • Pakiety JavaFX 486
    • Klasy Stage oraz Scene 486
    • Węzły i graf sceny 487
    • Układy 487
    • Klasa Application oraz metody cyklu życia 487
    • Uruchamianie aplikacji JavaFX 488
  • Szkielet aplikacji JavaFX 488
  • Kompilacja i uruchamianie programów JavaFX 491
  • Wątek aplikacji 491
  • Prosta kontrolka JavaFX: Label 491
  • Stosowanie przycisków i zdarzeń 493
    • Podstawy obsługi zdarzeń 493
    • Przedstawienie kontrolki Button 494
    • Przedstawienie obsługi zdarzeń i stosowania przycisków 494
  • Trzy kolejne kontrolki JavaFX 497
    • Pola wyboru 497
    • Listy 501
    • Pola tekstowe 505
  • Przedstawienie efektów i transformacji 508
    • Efekty 508
    • Transformacje 509
    • Prezentacja zastosowania efektów i transformacji 511
  • Co dalej? 513
  • Test sprawdzający 514

A. Rozwiązania testów sprawdzających 515

  • Rozdział 1. Podstawy Javy 515
  • Rozdział 2. Typy danych i operatory 517
  • Rozdział 3. Instrukcje sterujące 518
  • Rozdział 4. Wprowadzenie do klas, obiektów i metod 520
  • Rozdział 5. Więcej typów danych i operatorów 521
  • Rozdział 6. Więcej o metodach i klasach 524
  • Rozdział 7. Dziedziczenie 528
  • Rozdział 8. Pakiety i interfejsy 529
  • Rozdział 9. Obsługa wyjątków 531
  • Rozdział 10. Obsługa wejścia i wyjścia 533
  • Rozdział 11. Programowanie wielowątkowe 536
  • Rozdział 12. Typy wyliczeniowe, automatyczne opakowywanie, import składowych statycznych i adnotacje 538
  • Rozdział 13. Typy sparametryzowane 541
  • Rozdział 14. Wyrażenia lambda i referencje metod 544
  • Rozdział 15. Moduły 547
  • Rozdział 16. Wprowadzenie do Swing 548
  • Rozdział 17. Wprowadzenie do JavaFX 552

B. Komentarze dokumentacyjne 557

  • Znaczniki javadoc 557
    • @author 558
    • {@code} 558
    • @deprecated 558
    • {@docRoot} 559
    • @exception 559
    • @hidden 559
    • {@index} 559
    • {@inheritDoc} 559
    • {@link} 559
    • {@linkplain} 560
    • {@literal} 560
    • @param 560
    • @provides 560
    • @return 560
    • @see 560
    • @since 560
    • @throws 561
    • @uses 561
    • {@value} 561
    • @version 561
  • Ogólna postać komentarza dokumentacyjnego 561
  • Wynik działania programu javadoc 561
  • Przykład użycia komentarzy dokumentacyjnych 562

C. Przegląd technologii Java Web Start 563

  • Czym jest Java Web Start? 563
  • Cztery kluczowe aspekty Java Web Start 564
    • Aplikacje Java Web Start wymagają pliku JAR 564
    • Aplikacje Java Web Start są podpisywane cyfrowo 564
    • Java Web Start bazuje na JNLP 565
    • Tworzenie odnośnika do pliku JNLP 566
  • Eksperymenty z Java Web Start z wykorzystaniem lokalnego systemu plików 567
    • Utworzenie pliku JAR aplikacji ButtonDemo 567
    • Utworzenie magazynu kluczy i podpisanie pliku ButtonDemo.jar 568
    • Utworzenie pliku JNLP dla aplikacji ButtonDemo 569
    • Utworzenie pliku HTML o nazwie StartBD.html 570
    • Dodanie pliku ButtonDemo.jnlp do listy wyjątków w aplikacji Java Control Panel 570
    • Wykonanie aplikacji ButtonDemo z poziomu przeglądarki 570
  • Uruchamianie aplikacji Java Web Start przy użyciu programu javaws 571
  • Stosowanie technologii Java Web Start z apletami 571

D. Wprowadzenie do JShell 573

  • Podstawy JShell 573
  • Wyświetlanie, edycja i ponowne wykonywanie kodu 575
  • Dodanie metody 576
  • Utworzenie klasy 577
  • Stosowanie interfejsu 577
  • Przetwarzanie wyrażeń i wbudowane zmienne 578
  • Importowanie pakietów 579
  • Wyjątki 579
  • Inne polecenia JShell 580
  • Dalsze poznawanie możliwości JShell 581

E. Więcej słów kluczowych języka Java 583

  • Modyfikatory transient i volatile 583
  • instanceof 584
  • strictfp 584
  • assert 584
  • Metody rodzime 585
  • Inna postać this 585

Skorowidz 587

powrót
 
Produkty Podobne
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
Modularny JavaScript dla zaawansowanych
Core Java, Volume II--Advanced Features, 11th Edition
Java. Kompendium programisty. Wydanie X
Kotlin w akcji
Nowoczesna Java w działaniu. Wyrażenia lambda, strumienie, programowanie funkcyjne i reaktywne
Java. Przewodnik dla początkujących. Wydanie VII
Java. Efektywne programowanie. Wydanie III
Java w 24 godziny. Wydanie VIII
Programowanie w języku Java. Podejście interdyscyplinarne. Wydanie II
Więcej produktów