Tehnologii Java orientate spre aplicatii cross-platform

Autor: Cosmin Striletchi, Ligia-D. Chiorean, Mircea-F. Vaida, Adriana Stan, Stefan Dragos
Editura: Casa Cartii de Stiinta, Cluj-Napoca
Format: 16x23 cm
Nr. pagini: 274
Coperta: brosata
ISBN: 978-606-17-1610-4
Anul aparitiei: 2020
PREFATA
Lucrarea de fata se doreste a fi un instrument dedicat initierii si aprofundarii cunostintelor de programare specifice limbajului Java. Ea are la baza materialele precedente, actualizate si imbunatatite cu noile evolutii ale limbajului (pana la Java SE 11). Sunt imbinate experienta didactica precum si cea obtinuta in cadrul activitatii de cercetare cu realizari practice.
Sunt tratate aspectele teoretice esentiale ale limbajului Java si se urmareste corelarea lor cu o serie de exemple de cod ilustrative.
Sunt discutate si o serie de tehnologii specifice dezvoltarii aplicatiilor software in domeniul comunicatiilor.
Sunt prezentate notiunile de baza referitoare la implementarea aplicatiilor in mediul Android.
Primele capitole prezinta notiunile esentiale legate de limbajul Java:
- Aspecte legate de instalarea si configurarea mediului Java
- Structura aplicatiilor Java
- Elementele specifice ale limbajului Java:
operatori si expresii
tipuri de date
pachete
clase
membri (variabile, diverse tipuri de metode)
specificatori de acces
interfete
mostenire
exceptii
etc.
Urmatoarele capitole detaliaza cateva tehnologii specifice limbajului Java si prezinta modul de implementare a acestora in situatii concrete:
- Fluxuri de intrare si de iesire, fisiere
- Mecanisme specifice programarii bazate pe multithreading
- Elemente de programare distribuita
- Notiuni de programare a interfetelor grafice (AWT, Swing, JavaFX), aplicatii vizuale, componente destinate interfatarii cu utilizatorul, tratarea evenimentelor
- Notiuni de programare Android.
Lucrarea se adreseaza tuturor celor care doresc sa utilizeze limbajul Java in realizarea unor aplicatii practice si constituie un punct de pornire pentru dezvoltarea produselor software avansate.
Cititorii vizati cu precadere sunt studentii si specialistii care doresc sa se familiarizeze cu un limbaj de programare robust, versatil si care ofera suport pentru dezvoltarea unei largi game de aplicatii, incepand cu produse software de-sine-statatoare, continuand cu aplicatii distribuite si ajungand chiar in zona programelor dedicate dispozitivelor mobile.
Acest material constituie un bun punct de pornire pentru programatorii care doresc sa dezvolte aplicatii Android, acest limbaj bazandu-se pe sintaxa, clasele de baza si tehnologiile Java.
Autorii
CUPRINS
1. MEDII DE PROGRAMARE. APLICATII DE BAZA JAVA. 13
1.1. SCURT ISTORIC 13
1.2. PLATFORMA JAVA 13
1.3. MEDIUL DE RULARE (JRE) SI KITUL DE DEZVOLTARE (JDK) 14
1.4. TIPURI DE APLICATII JAVA 15
1.5. KITUL DE DEZVOLTARE ADOPTOPENJDK. INSTALARE, STRUCTURA SI UTILITARE. 15
1.6. DEZVOLTAREA DE APLICATII UTILIZAND UN EDITOR TEXT SI UTILITARELE KITULUI DE DEZVOLTARE JDK 19
1.7. CONSOLA SI LINIA DE COMANDA 20
1.8. MEDII DE DEZVOLTARE INTEGRATA IDE 21
MEDIUL DE DEZVOLTARE INTEGRATA ECLIPSE 21
MEDIUL DE DEZVOLTARE INTEGRATA INTELLIJ IDEA 26
EXEMPLE DE APLICATII JAVA 28
ACTIVITATI PROPUSE 39
2. APLICATII SIMPLE, DE SINE STATATOARE. OPERATORI. INSTRUCTIUNI. TABLOURI DE VARIABILE. 40
2.1. SINTAXA JAVA 40
2.2. TIPURI DE DATE 42
2.3. VARIABILE. REPREZENTAREA IN MEMORIE A TIPURILOR DE DATE. 44
2.4. TABLOURI DE VARIABILE 45
2.5. INSTRUCTIUNI ELEMENTARE SI OPERATORI 46
EXEMPLE 49
ACTIVITATI PROPUSE 61
3. CLASE JAVA, METODE, SPECIFICATORI DE ACCES 63
3.1. CLASE JAVA 63
3.2. SPECIFICATORI DE ACCES/VIZIBILITATE 63
3.3. METODE (FUNCTII MEMBRE IN CLASE) JAVA 65
3.4. CLASE INTERIOARE 68
3.5. CLASE ABSTRACTE 69
EXEMPLE 70
ACTIVITATI PROPUSE 76
4. CLASE PENTRU GESTIONAREA SIRURILOR DE CARACTERE 78
4.1. CLASA STRING 78
4.2. CLASA STRINGBUFFER 79
4.3. CLASA STRINGBUILDER 80
4.4. CLASA STRINGTOKENIZER 80
EXEMPLE 81
ACTIVITATI PROPUSE 83
5. INTERFETE, MOSTENIRE, EXPRESII LAMBDA 85
5.1. INTERFE?E JAVA 85
5.2. MOSTENIREA CLASELOR 86
5.3. UPCASTING SI DOWNCASTING 87
5.4. SUPRASCRIEREA METODELOR UNEI CLASE DE BAZA 88
5.5. ACCESUL LA MEMBRII CLASEI DE BAZA 89
5.6. MOSTENIREA INTERFE?ELOR 89
EXEMPLE 91
ACTIVITATI PROPUSE 99
6. PACHETE JAVA, MECANISME DE TARTARE A EXCEPTIILOR, ASERTIUNI 103
6.1. PACHETE JAVA 103
6.2. EXCEPTII JAVA 103
EXCEPTII DE TIP EROARE 104
EXCEPTII SPECIFICE 104
EXCEPTII LA RULARE 104
CLASA JAVA.LANG.THROWABLE 105
6.3. MECANISMELE DE TRATARE A EXCEPTIILOR IN JAVA 107
MECANISMUL DE DELEGARE A EXCEPTIILOR IN JAVA 108
SUPRASCRIEREA METODELOR SI TRATAREA EXCEPTIILOR 108
6.4. DEFINIREA PROPRIILOR CLASE DE TIP EXCEPTIE 109
6.5. ASERTIUNI 109
EXEMPLE 111
ACTIVITATI PROPUSE 117
7. TIPURI GENERICE, COLECTII IN JAVA 120
7.1. TIPURI GENERICE 120
7.2. RESTRICTIONAREA (SPECIALIZAREA) PARAMETRILOR TIPURILOR GENERICE 121
7.3. COLECTII JAVA 122
INTERFATA COLLECTION 123
INTERFATA LIST 125
INTERFETELE SET/SORTEDSET 126
INTERFETELE MAP/SORTEDMAP 126
EXEMPLE 127
ACTIVITATI PROPUSE 136
8. INTRARI / IESIRI IN JAVA. FISIERE. 137
8.1. INTRARI / IESIRI IN JAVA 137
8.2. FLUXURI DE INTRARE FIZICE SI VIRTUALE 139
8.3. FLUXURI DE IESIRE FIZICE SI VIRTUALE 140
8.4. READERS SI WRITERS 142
8.5. LUCRUL CU FISIERE IN JAVA 143
CLASA FILE 144
CLASA FILEINPUTSTREAM 144
CLASA FILEREADER 144
CLASA FILEOUTPUTSTREAM 145
CLASA FILEWRITER 145
CLASA RANDOMACCESSFILE 145
EXEMPLE 146
ACTIVITATI PROPUSE: 155
9. PROGRAMAREA BAZATA PE MULTITHREADING IN JAVA. 157
9.1. FIRE DE EXECUTIE 157
9.2. INTERFATA JAVA.LANG.RUNNABLE 158
9.3. CLASA JAVA.LANG.THREAD 158
9.4. CLASA THREADGROUP 162
9.5. CREAREA UNUI FIR DE EXECUTIE UTILIZAND INTERFATA RUNNABLE 164
9.6. CREAREA UNUI FIR DE EXECUTIE PORNIND DE LA CLASA THREAD 165
9.8. PRIORITATEA FIRELOR DE EXECUTIE 166
9.10. EXECUTORI 167
9.11. FORK/JOIN FRAMEWORK 169
EXEMPLE 171
ACTIVITATI PROPUSE 176
10. PROGRAMARE DE RETEA IN JAVA 178
10.1. MODELUL CLIENT-SERVER SI PROGRAMAREA IN RETEA FOLOSIND JAVA 178
10.2. CONCEPTUL DE SOCKET IN ACCEP?IUNEA JAVA 178
10.3. SOCKET-URI TCP (STREAM SOCKETS) 178
CLASA SOCKET 179
CLASA SERVERSOCKET 182
10.4. SOCKET-URI UDP 183
CLASA DATAGRAMPACKET 184
CLASA DATAGRAMSOCKET 185
EXEMPLE 185
ACTIVITATI PROPUSE 188
11. APLICATII GRAFICE IN JAVA 190
11.1. MODURI DE IMPLEMENTARE A APLICATIILOR GRAFICE IN JAVA 190
11.2. IMPLEMENTAREA APLICATIILOR DE TIP STAND ALONE 190
11.3. GRAFICA IN JAVA 191
CLASA GRAPHICS 191
CLASA GRAPHICS2D 191
ALTE ELEMENTE UTILIZATE IN GRAFICA IN JAVA 192
EXEMPLE 193
ACTIVITATI PROPUSE 202
12. COMPONENTE SPECIFICE INTERFETELOR GRAFICE 203
12.1. COMPONENTE JAVA 203
12.2. COMPONENTE DE TIP CONTAINER 210
12.3. COMPONENTE DE TIP MENIU 210
12.4. COMPONENTE DE AMPLASARE (LAYOUT MANAGERS) 210
12.5. COMPONENTE SWING 211
EXEMPLE 212
ACTIVITATI PROPUSE 219
13. GESTIONAREA EVENIMENTELOR 221
13.1. ASPECTE GENERALE 221
13.2. CLASE CARE SE OCUPA DE GESTIONAREA EVENIMENTELOR 221
CLASA JAVA.UTIL.EVENTOBJECT 222
CLASA JAVA.AWT.AWTEVENT 222
13.3. INTERFETE DE TIP LISTENER 224
13.4. CLASE DE TIP ADAPTER 227
13.5. MECANISMUL DE DELEGARE A EVENIMENTELOR (DELEGATION EVENT MODEL) 228
STRATEGII DE IMPLEMENTARE A EVENIMENTELOR JAVA BAZATE PE LISTENERI 228
13.6. CREAREA DE COMPONENTE CAPABILE SA ISI GESTIONEZE EVENIMENTELE
(INHERITANCE EVENT MODEL WITH MASKS) 229
EXEMPLE 230
ACTIVITATI PROPUSE 241
14. JAVAFX 243
14.1. INSTALARE JAVAFX - ECLIPSE 243
14.2. STRUCTURA UNEI APLICATII JAVAFX 244
14.3. COMPONENTE JAVAFX 246
14.4. TRATAREA EVENIMENTELOR IN JAVAFX 249
14.5. GRAFICA IN JAVAFX 249
15. APLICATII ALE LIMBAJULUI DE PROGRAMARE JAVA - ANDROID 251
15.1. ANDROID. NOTIUNI INTRODUCTIVE. 251
15.2. INSTALAREA MEDIULUI DE DEZVOLTARE ANDROID STUDIO 253
15.3. CREAREA UNEI APLICATII MINIMALE IN ANDROID 253
CREAREA SI CONFIGURAREA PROIECTULUI 254
RULAREA APLICATIEI 259
CREAREA INTERFETEI GRAFICE 261
LANSAREA UNEI NOI ACTIVITATI 266
CREAREA NOII ACTIVITATI 268
ACTIVITATI PROPUSE 271
BIBLIOGRAFIE 273