Java. Przewodnik dla początkujących. Wydanie IX Lędziny

Java cały czas dynamicznie się rozwija, a każda wersja przynosi nowe rozwiązania. Ten wszechstronny język pozwala na tworzenie stron WWW, aplikacji internetowych, aplikacji mobilnych i wysoko specjalistycznego oprogramowania dla przeróżnych urządzeń technicznych. Jest to możliwe między innymi …

od 70,95 Najbliżej: 37 km

Liczba ofert: 1

Oferta sklepu

Opis

Java cały czas dynamicznie się rozwija, a każda wersja przynosi nowe rozwiązania. Ten wszechstronny język pozwala na tworzenie stron WWW, aplikacji internetowych, aplikacji mobilnych i 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 żywym i nowoczesnym językiem wybieranym przez profesjonalistów. To dziewiąte wydanie znakomitego podręcznika programowania dla początkujących, starannie zaktualizowane i uzupełnione o informacje dotyczące Java Platform, Standard Edition 17. Książka rozpoczyna się od solidnej dawki wiedzy o kompilacji i uruchamianiu programu w Javie, słowach kluczowych i istotnych konstrukcjach w tym języku. 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 i modułów. Poszczególne partie materiału są bogato uzupełnione przykładami kodu z komentarzami, praktycznymi ćwiczeniami, testami sprawdzającymi, wskazówkami i dodatkowymi informacjami. Przejrzysty układ podręcznika, jasny i zrozumiały język dodatkowo ułatwia naukę. W książce znajdziesz: treści dobrane pod kątem efektywnej i łatwej nauki eksperckie wskazówki i podpowiedzi praktyczne przykłady zastosowania nabytych umiejętności utrwalające wiedzę testy sprawdzające przykładowe kody uzupełnione zrozumiałymi komentarzami Java: twórz, kompiluj i uruchamiaj najlepszy kod! Spis treści: O autorze O redaktorze merytorycznym Wstęp 1. Podstawy Javy Historia i filozofia Javy Pochodzenie Javy Java a języki C i C++ Wpływ Javy na Internet Magiczny kod bajtowy Coś więcej niż aplety Szybszy harmonogram udostępniania Terminologia Javy Programowanie obiektowe Hermetyzacja Polimorfizm Dziedziczenie Java Development Kit Pierwszy prosty program Wprowadzenie tekstu programu Kompilowanie programu Pierwszy program wiersz po wierszu Obsługa błędów składni Drugi prosty program Inne typy danych Przykład 1.1. Zamiana galonów na litry Dwie instrukcje sterujące Instrukcja if Pętla for Bloki kodu Średnik i pozycja kodu w wierszu Wcięcia Przykład 1.2. Ulepszony konwerter galonów na litry Słowa kluczowe języka Java Identyfikatory Biblioteki klas Test sprawdzający 2. Typy danych i operatory Dlaczego typy danych są tak ważne Typy proste Typy całkowite Typy zmiennoprzecinkowe Znaki Typ logiczny Przykład 2.1. Jak daleko uderzył piorun? Literały Literały szesnastkowe, ósemkowe i binarne Specjalne sekwencje znaków Literały łańcuchowe Zmienne Inicjalizacja zmiennej Dynamiczna inicjalizacja Zasięg deklaracji i czas istnienia zmiennych Operatory Operatory arytmetyczne Inkrementacja i dekrementacja Operatory relacyjne i logiczne Warunkowe operatory logiczne Operator przypisania Skrótowe operatory przypisania Konwersje typów w instrukcjach przypisania Rzutowanie typów niezgodnych Priorytet operatorów Przykład 2.2. Tabela prawdy dla operatorów logicznych Wyrażenia Konwersja typów w wyrażeniach Odstępy i nawiasy Test sprawdzający 3. Instrukcje sterujące Wprowadzanie znaków z klawiatury Instrukcja if Zagnieżdżanie instrukcji if Drabinka if-else-if Tradycyjna instrukcja switch Zagnieżdżanie instrukcji switch Przykład 3.1. Rozpoczynamy budowę systemu pomocy Pętla for Wariacje na temat pętli for Brakujące elementy Pętla nieskończona Pętle bez ciała Deklaracja zmiennych sterujących wewnątrz pętli Rozszerzona pętla for Pętla while Pętla do-while Przykład 3.2. Ulepszamy system pomocy Przerywanie pętli instrukcją break Zastosowanie break jako formy goto Zastosowanie instrukcji continue Przykład 3.3. Końcowa wersja systemu pomocy Pętle zagnieżdżone Test sprawdzający 4. Wprowadzenie do klas, obiektów i metod Podstawy klas Ogólna postać klasy Definiowanie klasy Jak powstają obiekty Referencje obiektów i operacje przypisania Metody Dodajemy metodę do klasy Vehicle Powrót z metody Zwracanie wartości Stosowanie parametrów Dodajemy sparametryzowaną metodę do klasy Vehicle Przykład 4.1. System pomocy jako klasa Konstruktory Konstruktory z parametrami Dodajemy konstruktor do klasy Vehicle Operator new Odzyskiwanie pamięci Słowo kluczowe this Test sprawdzający 5. Więcej typów danych i operatorów Tablice Tablice jednowymiarowe Przykład 5.1. Sortowanie tablicy Tablice wielowymiarowe Tablice dwuwymiarowe Tablice nieregularne Tablice o trzech i więcej wymiarach Inicjalizacja tablic wielowymiarowych Alternatywna składnia deklaracji tablic Przypisywanie referencji tablic Wykorzystanie składowej length Przykład 5.2. Klasa Queue Styl for-each pętli for Iteracje w tablicach wielowymiarowych Zastosowania rozszerzonej pętli for Łańcuchy znaków Tworzenie łańcuchów Operacje na łańcuchach Tablice łańcuchów Łańcuchy są niezmienne Stosowanie łańcuchów do sterowania instrukcją switch Wykorzystanie argumentów wywołania programu Stosowanie wnioskowania typów w zmiennych lokalnych Wnioskowanie typów zmiennych lokalnych w przypadku typów referencyjnych Stosowanie wnioskowania typów zmiennych lokalnych w pętlach Ograniczenia var Operatory bitowe Operatory bitowe AND, OR, XOR i NOT Operatory przesunięcia Skrótowe bitowe operatory przypisania Przykład 5.3. Klasa ShowBits Operator ? Test sprawdzający 6. Więcej o metodach i klasach Kontrola dostępu do składowych klasy Modyfikatory dostępu w Javie Przykład 6.1. Ulepszamy klasę Queue Przekazywanie obiektów do metod Sposób przekazywania argumentów Zwracanie obiektów Przeciążanie metod Przeciążanie konstruktorów Przykład 6.2. Przeciążamy konstruktor klasy Queue Rekurencja Słowo kluczowe static Bloki static Przykład 6.3. Algorytm Quicksort Klasy zagnieżdżone i klasy wewnętrzne Zmienne liczby argumentów Metody o zmiennej liczbie argumentów Przeciążanie metod o zmiennej liczbie argumentów Zmienna liczba argumentów i niejednoznaczność Test sprawdzający 7. Dziedziczenie Podstawy dziedziczenia Dostęp do składowych a dziedziczenie Konstruktory i dziedziczenie Użycie słowa kluczowego super do wywołania konstruktora klasy bazowej Użycie słowa kluczowego super do dostępu do składowych klasy bazowej Przykład 7.1. Tworzymy hierarchię klas Vehicle Wielopoziomowe hierarchie klas Kiedy wywoływane są konstruktory? Referencje klasy bazowej i obiekty klasy pochodnej Przesłanianie metod Przesłanianie metod i polimorfizm Po co przesłaniać metody? Zastosowanie przesłaniania metod w klasie TwoDShape Klasy abstrakcyjne Słowo kluczowe final final zapobiega przesłanianiu final zapobiega dziedziczeniu Użycie final dla zmiennych składowych Klasa Object Test sprawdzający 8. Pakiety i interfejsy Pakiety Definiowanie pakietu Wyszukiwanie pakietów i zmienna CLASSPATH Prosty przykład pakietu Pakiety i dostęp do składowych Przykład dostępu do pakietu Składowe chronione Import pakietów Biblioteka klas Java używa pakietów Interfejsy Implementacje interfejsów Referencje interfejsu Przykład 8.1. Tworzymy interfejs Queue Zmienne w interfejsach Interfejsy mogą dziedziczyć Domyślne metody interfejsów Podstawowe informacje o metodach domyślnych Praktyczny przykład metody domyślnej Problemy wielokrotnego dziedziczenia Stosowanie metod statycznych w interfejsach Stosowanie metod prywatnych w interfejsach Ostatnie uwagi o pakietach i interfejsach Test sprawdzający 9. Obsługa wyjątków Hierarchia wyjątków Podstawy obsługi wyjątków Słowa kluczowe try i catch Prosty przykład wyjątku Konsekwencje nieprzechwycenia wyjątku Wyjątki umożliwiają obsługę błędów Użycie wielu klauzul catch Przechwytywanie wyjątków klas pochodnych Zagnieżdżanie bloków try Generowanie wyjątku Powtórne generowanie wyjątku Klasa Throwable Klauzula finally Użycie klauzuli throws Trzy dodatkowe możliwości wyjątków Wyjątki wbudowane w Javę Tworzenie klas pochodnych wyjątków Przykład 9.1. Wprowadzamy wyjątki w klasie Queue Test sprawdzający 10. Obsługa wejścia i wyjścia Strumienie wejścia i wyjścia Strumienie bajtowe i strumienie znakowe Klasy strumieni bajtowych Klasy strumieni znakowych Strumienie predefiniowane Używanie strumieni bajtowych Odczyt wejścia konsoli Zapis do wyjścia konsoli Odczyt i zapis plików za pomocą strumieni bajtowych Odczyt z pliku Zapis w pliku Automatyczne zamykanie pliku Odczyt i zapis danych binarnych Przykład 10.1. Narzędzie do porównywania plików Pliki o dostępie swobodnym Strumienie znakowe Odczyt konsoli za pomocą strumieni znakowych Obsługa wyjścia konsoli za pomocą strumieni znakowych Obsługa plików za pomocą strumieni znakowych Klasa FileWriter Klasa FileReader Zastosowanie klas opakowujących do konwersji łańcuchów numerycznych Przykład 10.2. System pomocy wykorzystujący pliki Test sprawdzający 11. Programowanie wielowątkowe Podstawy wielowątkowości Klasa Thread i interfejs Runnable Tworzenie wątku Usprawnienie i dwie modyfikacje Przykład 11.1. Tworzymy klasę pochodną klasy Thread Tworzenie wielu wątków Jak ustalić, kiedy wątek zakończył działanie? Priorytety wątków Synchronizacja Synchronizacja metod Synchronizacja instrukcji Komunikacja międzywątkowa Przykład użycia metod wait() i notify() Wstrzymywanie, wznawianie i kończenie działania wątków Przykład 11.2. Wykorzystanie głównego wątku Test sprawdzający 12. Typy wyliczeniowe, automatyczne opakowywanie, adnotacje i inne zagadnienia Wyliczenia Podstawy wyliczeń Wyliczenia są klasami Metody values() i valueOf() Konstruktory, metody, zmienne instancji a wyliczenia Dwa ważne ograniczenia Typy wyliczeniowe dziedziczą po klasie Enum Przykład 12.1. Komputerowo sterowana sygnalizacja świetlna Automatyczne opakowywanie Typy opakowujące Podstawy automatycznego opakowywania Automatyczne opakowywanie i metody Automatyczne opakowywanie i wyrażenia Przestroga Import składowych statycznych Adnotacje (metadane) Prezentacja operatora instanceof Test sprawdzający 13. Typy sparametryzowane Podstawy typów sparametryzowanych Prosty przykład typów sparametryzowanych Parametryzacja dotyczy tylko typów obiektowych Typy sparametryzowane różnią się dla różnych argumentów Klasa sparametryzowana o dwóch parametrach Ogólna postać klasy sparametryzowanej Ograniczanie typów Stosowanie argumentów wieloznacznych Ograniczanie argumentów wieloznacznych Metody sparametryzowane Konstruktory sparametryzowane Interfejsy sparametryzowane Przykład 13.1. Sparametryzowana klasa Queue Typy surowe i tradycyjny kod Wnioskowanie typów i operator diamentowy Wnioskowanie typów zmiennych lokalnych a typy sparametryzowane Wymazywanie Błędy niejednoznaczności Ograniczenia związane z typami sparametryzowanymi Zakaz tworzenia instancji parametru typu Ograniczenia dla składowych statycznych Ograniczenia tablic sparametryzowanych Ograniczenia związane z wyjątkami Dalsze studiowanie typów sparametryzowanych Test sprawdzający 14. Wyrażenia lambda i referencje metod Przedstawienie wyrażeń lambda Podstawowe informacje o wyrażeniach lambda Interfejsy funkcyjne Wyrażenia lambda w działaniu Blokowe wyrażenia lambda Sparametryzowane interfejsy funkcyjne Przykład 14.1. Przekazywanie wyrażenia lambda jako argumentu Wyrażenia lambda i przechwytywanie zmiennych Zgłaszanie wyjątków w wyrażeniach lambda Referencje metod Referencje metod statycznych Referencje metod instancyjnych Referencje konstruktorów Predefiniowane interfejsy funkcyjne Test sprawdzający 15. Moduły Podstawowe informacje o modułach Przykład prostego modułu Kompilowanie i uruchamianie przykładowej aplikacji Dokładniejsze informacje o instrukcjach requires i exports java.base i moduły platformy Stary kod i moduł nienazwany Eksportowanie do konkretnego modułu Wymagania przechodnie Przykład 15.1. Eksperymenty z instrukcją requires transitive Stosowanie usług Podstawowe informacje o usługach i dostawcach usług Słowa kluczowe związane z usługami Przykład stosowania usług i modułów Dodatkowe cechy modułów Moduły otwarte Instrukcja opens requires static Dalsze samodzielne poznawanie modułów Test sprawdzający 16. Wyrażenia switch, rekordy oraz inne najnowsze możliwości języka Rozszerzenia switch Listy stałych Wprowadzanie wyrażenia switch i instrukcji yield Wprowadzenie strzałek do klauzul case Dokładniejsza prezentacja zapisu ze strzałką Przykład 16.1. Zastosowanie wyrażenia switch do określania strefy czasowej różnych miast Rekordy Podstawowe informacje o rekordach Tworzenie konstruktorów rekordów Tworzenie metod pobierających w rekordach Dopasowywanie wzorców z użyciem operatora instanceof Klasy i interfejsy zapieczętowane Klasy zapieczętowane Interfejsy zapieczętowane Kierunki rozwoju Test sprawdzający 17. Wprowadzenie do biblioteki Swing Pochodzenie i filozofia Swing Komponenty i kontenery Komponenty Kontenery Panele kontenerów szczytowych Menedżery układu Pierwszy program wykorzystujący Swing Pierwszy program Swing wiersz po wierszu Obsługa zdarzeń w Swing Zdarzenia Źródła zdarzeń Obiekty nasłuchujące Klasy zdarzeń i interfejsy obiektów nasłuchujących Komponent JButton Komponent JTextField Komponent JCheckBox Komponent JList Przykład 17.1. Porównywanie plików - aplikacja Swing Wykorzystanie anonimowych klas wewnętrznych lub wyrażeń lambda do obsługi zdarzeń Test sprawdzający A. Rozwiązania testów sprawdzających Rozdział 1. Podstawy Javy Rozdział 2. Typy danych i operatory Rozdział 3. Instrukcje sterujące Rozdział 4. Wprowadzenie do klas, obiektów i metod Rozdział 5. Więcej typów danych i operatorów Rozdział 6. Więcej o metodach i klasach Rozdział 7. Dziedziczenie Rozdział 8. Pakiety i interfejsy Rozdział 9. Obsługa wyjątków Rozdział 10. Obsługa wejścia i wyjścia Rozdział 11. Programowanie wielowątkowe Rozdział 12. Typy wyliczeniowe, automatyczne opakowywanie, adnotacje i inne zagadnienia Rozdział 13. Typy sparametryzowane Rozdział 14. Wyrażenia lambda i referencje metod Rozdział 15. Moduły Rozdział 16. Wyrażenia switch, rekordy oraz inne najnowsze możliwości języka Rozdział 17. Wprowadzenie do biblioteki Swing B. Komentarze dokumentacyjne Znaczniki javadoc @author {@code} @deprecated {@docRoot} @exception @hidden {@index} {@inheritDoc} {@link} {@linkplain} {@literal} @param @provides @return @see @since {@summary} @throws @uses {@value} @version Ogólna postać komentarza dokumentacyjnego Wynik działania programu javadoc Przykład użycia komentarzy dokumentacyjnych C. Kompiluj i uruchamiaj proste programy w jednym kroku D. Wprowadzenie do JShell Podstawy JShell Wyświetlanie, edycja i ponowne wykonywanie kodu Dodanie metody Utworzenie klasy Stosowanie interfejsu Przetwarzanie wyrażeń i wbudowane zmienne Importowanie pakietów Wyjątki Inne polecenia JShell Dalsze poznawanie możliwości JShell E. Więcej słów kluczowych języka Java Modyfikatory transient i volatile strictfp assert Metody rodzime Inna postać this O autorze: Herb 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.

Specyfikacja

Podstawowe informacje

Autor
  • Herbert Schildt
Wybrani autorzy
  • Herbert Schildt
Wydawnictwo
  • Helion
Format
  • PDF
  • MOBI
  • EPUB
Ilość stron
  • 576
Rok wydania
  • 2024