E-book details

JAVA. Programowanie obiektowe w praktyce

JAVA. Programowanie obiektowe w praktyce

Jerzy Krawiec

Ebook

W podręczniku przedstawiono paradygmaty mające wpływ na sposób konstrukcji kodu źródłowego, czyli model zorientowany na procesy oraz kod działający na danych. Szczegółowo opisano mechanizmy zapewniające implementację modelu obiektowego - hermetyzację, dziedziczenie i polimorfizm. Przedstawiono dwa najważniejsze atrybuty Javy - przenośność i bezpieczeństwo. Wyjaśniono podstawowe cechy programowania dotyczące operacji arytmetycznych i logicznych oraz funkcji sterujących. Autorzy skoncentrowali się przede wszystkim na cechach obiektowości języka, takich jak: klasy, interfejsy, obsługa wyjątków, operacje wejścia-wyjścia ora z aplety i aplikacje. Podano także przykłady kodu w odniesieniu do aplikacji stosowanych w rozwiązniach przemysłowych i przedstawiono wyniki badań wydajności i elementów bezpiecznej konstrukcji kodu źródłowego Javy.

Przedmowa 9

1. PODSTAWY JĘZYKA JAVA 11

1.1. Ewolucja języka programowania 11

1.2. Problemy z funkcjonowaniem Internetu 12

1.3. Maszyna wirtualna Javy 13

1.4. Podstawowe cechy Javy 13

2. OPERACJE ARYTMETYCZNE I LOGICZNE 15

2.1. Zmienne jako konstrukcje programistyczne 15

2.2. Operatory arytmetyczne 17

2.3. Operatory bitowe 18

2.4. Operatory logiczne 19

2.5. Operatory przypisania Javy 20

2.6. Operatory relacji (porównywania) 21

2.7. Priorytety operatorów 22

2.8. Badania wydajności 22

3. INSTRUKCJE STERUJĄCE 30

3.1. Instrukcje wyboru 30

3.2. Instrukcje iteracyjne 33

3.3. Instrukcje skoku 34

3.4. Badania wydajności 36

4. PODSTAWY PROGRAMOWANIA OBIEKTOWEGO 40

4.1. Obiektowość 40

4.2. Hermetyzacja 42

4.3. Dziedziczenie 43

4.4. Polimorfizm 43

5. KLASY 45

5.1. Wprowadzenie 45

5.2. Klasy 45

5.3. Metody 49

5.4. Klasy i metody abstrakcyjne 51

5.5. Konstruktory 52

5.6. Metoda finalize 54

6. DZIEDZICZENIE 55

6.1. Idea dziedziczenia 55

6.2. Konstruktory klasy bazowej i potomnej 56

6.3. Kontrola dostępu 58

6.4. Przeciążanie i przesłanie metod 60

6.5. Składowe statyczne 61

6.6. Klasy i składowe finalne 62

6.7. Badania wydajności metod finalnych 64

7. AUTOMATYCZNE OPAKOWYWANIE 67

7.1. Zasady ogólne 67

7.2. Klasa Number 68

7.3. Opakowanie dla liczb zmiennoprzecinkowych 68

7.4. Opakowanie dla typów całkowitoliczbowych 70

7.5. Opakowania klasy Character 70

7.6. Opakowywanie automatyczne 71

7.7. Badania wydajności 74

8. OBSŁUGA WYJĄTKÓW76

8.1. Zasady ogólne 76

8.2. Własna obsługa wyjątków 78

8.3. Nowe cechy wyjątków 79

8.4. Badania wydajności automatycznego zarządzania zasobami 80

9. TABLICE 84

9.1. Zasady ogólne 84

9.2. Tablice jednowymiarowe 84

9.3. Tablice wielowymiarowe 87

9.4. Zarządzanie pamięcią 89

9.5. Operacje na tablicach 91

9.6. Badania wydajności operacji na tablicach 92

10. POLIMORFIZM 94

10.1. Polimorfizm dynamiczny 94

10.2. Konwersje typów prostych 94

10.3. Rzutowanie typów obiektowych 96

11. INTERFEJSY 99

11.1. Klasy abstrakcyjne 99

11.2. Budowanie interfejsów 99

12. OBSŁUGA ŁAŃCUCHÓW 102

12.1. Zasady ogólne 102

12.2. Operacje na łańcuchach 102

12.3. Klasy StringBuffer i StringBuilder 104

12.4. Badania wydajności 105

13. MODEL WIELOWĄTKOWOŚCI 113

13.1. Zasady ogólne 113

13.2. Wielowątkowość 113

13.3. Model wątków 114

13.4. Priorytety 114

3.5. Synchronizacja 115

13.6. Wątek główny 115

13.7. Komunikacja międzywątkowa 117

13.8. Uzyskiwanie stanu wątku 118

13.9. Badania wydajności 119

14. KOLEKCJE 120

14.1. Zasady ogólne 120

14.2. Typy sparametryzowane 120

14.3. Mechanizmy kolekcji 121

14.4. Interfejsy 122

14.5. Klasy kolekcji 123

14.6. Klasy ArrayList i Enumset 124

14.7. Badania wydajności kolekcji 124

15. SYSTEMY WEJŚCIA-WYJŚCIA 129

15.1. Zasady ogólne 129

15.2. Strumienie bajtów 129

15.3. Strumienie filtrowane 131

15.4. Strumienie buforowane 131

15.5. Strumienie znaków 133

15.6. Obsługa danych wyjściowych 134

15.7. Badania wydajności operacji strumieniowych 135

16. PROGRAMOWANIE RÓWNOLEGŁE 143

16.1. Zasady ogólne 143

16.2. Framework Fork/Join 143

16.3. Strategia „Dziel i zwyciężaj” 145

16.4. Poziom równoległości 145

16.5. Badania wydajności 146

17. APLETY I APLIKACJE 150

17.1. Biblioteki 150

17.2. Aplety 152

17.3. Aplikacje 155

18. ADNOTACJE 163

18.1. Zasady tworzenia adnotacji 163

18.2. Adnotacje znacznikowe 164

18.3. Adnotacje jednoelementowe164

18.4. Adnotacje wbudowane 164

18.5. Zasady stosowania adnotacji 165

19. PRAKTYCZNE ZASTOSOWANIA166

19.1. Sterowanie sprężarką 166

19.2. Sygnalizacja świetlna 167

19.3. Koszt cyklu życia (LCC) silników elektrycznych 167

19.4. Inwestycja 168

19.5. Kredyt 168

20. PODSUMOWANIE 170

Bibliografia 171

Załącznik A – Przykłady programów w praktyce 172

A.1. Sterowanie sprężarką 172

A.2. Sygnalizacja świetlna 175

A.3. Koszt cyklu życia (LCC) silników elektrycznych 178

A.4. Inwestycja 183

A.5. Kredyt 187

Załącznik B – Pomiary wydajności kodu źródłowego 192

B.1. Operacje arytmetyczne i logiczne 192

B.2. Instrukcje sterujące 194

B.3. Metody finalne 195

B.4. Automatyczne opakowywanie 195

B.5. Automatyczne zarządzanie zasobami 195

B.6. Operacje na tablicach 196

B.7. Obsługa łańcuchów 196

B.8. Model wielowątkowości 198

B.9. Kolekcje 198

B.10. Strumienie 199

B.11. Programowanie równoległe 200

  • Title: JAVA. Programowanie obiektowe w praktyce
  • Author: Jerzy Krawiec
  • ISBN: 978-83-7814-746-6, 9788378147466
  • Date of issue: 2020-09-18
  • Format: Ebook
  • Item ID: e_1r7w
  • Publisher: Oficyna Wydawnicza Politechniki Warszawskiej