DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al...

13
Jim Keogh face parte din personalul didactic al Universitãþii Columbia, unde predã cursuri despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire a site-urilor de comerþ electronic din Universitatea Columbia ºi a devenit primul preºedinte al acestuia. Timp de mai mult de un deceniu a dezvoltat sisteme avansate pentru firme importante din domeniul financiar ºi este autorul mai multor cãrþi de calculatoare foarte bine vândute. DESPRE AUTOR

Transcript of DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al...

Page 1: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

Jim Keogh face parte din personalul didactic al Universitãþii Columbia, unde predã cursuridespre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului JavaCommunity Process Program. A creat primul comitet de urmãrire a site-urilor de comerþelectronic din Universitatea Columbia ºi a devenit primul preºedinte al acestuia. Timp demai mult de un deceniu a dezvoltat sisteme avansate pentru firme importante din domeniulfinanciar ºi este autorul mai multor cãrþi de calculatoare foarte bine vândute.

DESPRE AUTOR

Page 2: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

v

CUPRINS PE SCURT

CAPITOLUL 1 În interiorul limbajului Java 1

CAPITOLUL 2 Tipuri de date ºi variabile 17

CAPITOLUL 3 Expresii ºi instrucþiuni 41

CAPITOLUL 4 Structuri de control 65

CAPITOLUL 5 Matrice 91

CAPITOLUL 6 Metode ºi polimorfism 109

CAPITOLUL 7 Clase 125

CAPITOLUL 8 Moºtenirea 145

CAPITOLUL 9 Tratarea excepþiilor 165

CAPITOLUL 10 Execuþia multifilarã (multithreading) 181

CAPITOLUL 11 Fiºiere ºi fluxuri 209

CAPITOLUL 12 Interfaþa graficã cu utilizatorul 223

CAPITOLUL 13 JDBC ºi obiecte Java pentru date 255

CAPITOLUL 14 Miniaplicaþii Java 289

Examenul final 303

Rãspunsuri la întrebãrile recapitulative ºiexamenul final 309

Index 325

Page 3: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire
Page 4: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

vii

CUPRINS

Introducere xv

CAPITOLUL 1 În interiorul limbajului Java 1Programe pentru calculatoare 2

Date 2Limbaje de programare 3La începuturi 5

Cum devine standard un limbaj de programare 7Apoi Java 7În interiorul limbajului Java 9

Scrierea unui program Java pornind de la zero 10Compilarea unui program Java 11Rularea unui program Java 12

Analiza pe componente a unui program Java 13Definiþia clasei 13Definiþia metodei 14Instrucþiuni 15

Întrebãri recapitulative 16

CAPITOLUL 2 Tipuri de date ºi variabile 17Date ºi numere 17

Sã ne jucãm cu sistemele de numeraþie 20Numere ºi caractere 20Cãutarea valorilor Unicode 22

Page 5: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

viiiJava fãrã mistere

Valori literale 22Literale întregi 23Literale în virgulã mobilã 24Literale booleene 25Literale de tip caracter 26ªiruri de caractere literale 28

Tipuri de date 28Tipuri de date întregi 29Tipuri de date în virgulã mobilã 31Tipuri de date pentru caractere 31Tipul de date boolean 32Conversia tipurilor de date 32

Variabile 33Declararea unei variabile 34Declararea variabilelor multiple 36Iniþializarea unei variabile 36Domeniul de valabilitate al unei variabile 38Durata de viaþã a unei variabile 39

Întrebãri recapitulative 40

CAPITOLUL 3 Expresii ºi instrucþiuni 41Expresii 41Tipuri de expresii 43Operatori 45

Operatori aritmetici 46Operatori relaþionali 50Operatori logici 52Operatori pe biþi 56

Instrucþiuni 63Întrebãri recapitulative 63

CAPITOLUL 4 Structuri de control 65Fluxul programului 65Instrucþiuni de control 66

Page 6: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

ixCUPRINS

Instrucþiuni de selecþie 67Instrucþiunea if 67Instrucþiunea switch 76

Instrucþiuni iterative 80Ciclul for 80Ciclul while 85Ciclul do while 87

Instrucþiuni de salt 88Instrucþiunea break 88Instrucþiunea continue 89Instrucþiunea return 90

Întrebãri recapitulative 90

CAPITOLUL 5 Matrice 91În interiorul unei matrice 91Alocarea memoriei pentru o matrice 93Iniþializarea matricelor 94Matrice multidimensionale 94

Crearea unei matrice multidimensionale 95Atribuirea valorilor cãtre elementele matricei 96Membrul de date length 96Transmiterea unei matrice ca argument al

unei metode 98Returnarea unei matrice dintr-o metodã 100Moduri alternative de creare a unei matrice 101Clasa Arrays 102

Metoda equals() 102Metoda fill() 104Metoda sort() 106Metoda binarySearch() 106

Întrebãri recapitulative 107

CAPITOLUL 6 Metode ºi polimorfism 109În interiorul metodelor 110Tipuri de metode 110

Page 7: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xJava fãrã mistere

Definiþia unei metode 111Antetul metodei 111Corpul metodei 112Valoarea returnatã de metodã 113

Lista de argumente 114Elemente ale listei de argumente 115Cum funcþioneazã o listã de argumente 115

Argumente în linia de comandã 117Transmiterea argumentelor din linia de

comandã 118Apelarea unei metode 119Polimorfism 121

Semnãtura unei metode 122Întrebãri recapitulative 123

CAPITOLUL 7 Clase 125Definiþia unei clase 125Definirea unei metode membre 127

Specificatori de acces 127Declararea variabilelor de instanþã 129Constructorul clasei 130

Declararea unei instanþe a unei clase 131Accesul la membrii unei clase 132Supraîncãrcarea metodelor membre 133

Supraîncãrcarea constructorilor 134Cuvântul cheie this 135Colectarea gunoiului 136Metoda finalize() 137Clase interne 138Iniþializatori statici 139Pachete 140

Utilizarea unui pachet 141Variabila CLASSPATH 142Pachete ºi protejarea accesului 143

Întrebãri recapitulative 143

Page 8: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xiCUPRINS

CAPITOLUL 8 Moºtenirea 145Ce este moºtenirea? 145Când sã folosiþi moºtenirea 146În interiorul moºtenirii 147Accesul la membrii unei clase moºtenite 147Superclasa poate fi instanþiatã 148Moºtenirea unidirecþionalã 149Apelarea constructorilor 149Folosirea cuvântului cheie super 150Moºtenirea pe mai multe niveluri 152Suprascrierea metodelor membre folosind

moºtenirea 154Livrarea dinamicã a metodelor 156

Clase abstracte 158Cuvântul cheie final ºi moºtenirea 161Clasa Object ºi subclasele 162Întrebãri recapitulative 163

CAPITOLUL 9 Tratarea excepþiilor 165Ce este o excepþie? 166Proceduri de tratare a excepþiilor 166Tratarea de bazã a excepþiilor 167Blocuri catch multiple 168Blocul finally 169Lucrul cu excepþii neinterceptate 170Instrucþiuni try imbricate 171Lansarea unei excepþii 172

Metode care nu trateazã excepþiile 174Excepþii verificate ºi neverificate 175Crearea unei subclase de excepþii 176Întrebãri recapitulative 179

CAPITOLUL 10 Execuþia multifilarã (multithreading) 181Multitasking 181Suprasarcina 182Fire de execuþie 183Sincronizarea 184

Page 9: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xiiJava fãrã mistere

Clasa Thread ºi interfaþa Runnable 185Firul de execuþie principal 185Crearea unui fir de execuþie propriu 187Crearea unui fir de execuþie folosind cuvântul

cheie extends 189Folosirea firelor multiple de execuþie

într-un program 190Folosirea metodelor isAlive() ºi join() 192Stabilirea prioritãþilor pentru firele de execuþie 195Sincronizarea firelor de execuþie 197

Metode sincronizate 198Utilizarea instrucþiunilor sincronizate 201

Comunicarea între firele de execuþie 202Suspendarea ºi reluarea unui fir de execuþie 206Întrebãri recapitulative 208

CAPITOLUL 11 Fiºiere ºi fluxuri 209Fiºiere ºi sisteme de fiºiere 209Clasa File 210Afiºarea listei de fiºiere dintr-un director 213Fluxuri 214

Scrierea într-un fiºier 214Citirea dintr-un fiºier 216Adãugarea datelor într-un fiºier 217Citirea ºi scrierea unui obiect într-un fiºier 219

Întrebãri recapitulative 222

CAPITOLUL 12 Interfaþa graficã cu utilizatorul 223Ce este o interfaþã cu utilizatorul? 223Ce este o interfaþã graficã cu utilizatorul? 225O interfaþã graficã simplã 226Clasele swing 228

Containerul pentru conþinutul ferestrei 230Gestionarii de machete din Java 232Butoane de apãsare 236Etichete ºi casete de text 237Butoane radio ºi casete de validare 238

Page 10: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xiiiCUPRINS

Casete combinate 240Zone de text 242Panouri de derulare 243

Obþinerea datelor de la componentele GUI 245Citirea unui buton 247Citirea butoanelor radio ºi a casetelor de validare 249Citirea unei casete combinate 251Activarea ºi dezactivarea elementelor GUI 253

Întrebãri recapitulative 253

CAPITOLUL 13 JDBC ºi obiecte Java pentru date 255Elemente fundamentale despre baze de date 255Conceptul JDBC 256

Tipuri de drivere JDBC 257Pachete JDBC API 258

Procesul JDBC 258Încãrcarea driverului JDBC 258Conectarea la sistemul DBMS 259Crearea ºi executarea unei interogãri SQL 260Terminarea conexiunii cu sistemul DBMS 263

Interceptarea excepþiilor 264Evitarea depãºirii timpului de aºteptare 265

Mai multe despre obiectele Statement 265Obiectul Statement 266Obiectul PreparedStatement 268Obiectul CallableStatement 270

Obiectul ResultSet 272Citirea setului de rezultate 273Poziþionarea cursorului virtual 275Aducerea rândurilor din baza de date 278Seturi de rezultate actualizabile 280

Metadate 284Tipuri de date 285Excepþii 287Întrebãri recapitulative 287

Page 11: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xivJava fãrã mistere

CAPITOLUL 14 Miniaplicaþii Java 289Elemente fundamentale despre miniaplicaþiile Java 289Scrierea unei miniaplicaþii Java 291

Structura unei miniaplicaþii Java 291Apelarea unei miniaplicaþii Java 293Rularea unei miniaplicaþii Java 294Alte atribute 294

Adãugarea elementelor grafice în fereastraminiaplicaþiei 295

Transmiterea parametrilor 297Restricþii 298Folosirea casetelor de dialog într-o miniaplicaþie 299Fereastra de stare 301Întrebãri recapitulative 302

Examenul final 303

Rãspunsuri la întrebãrile recapitulative ºiexamenul final 309

Capitolul 1 309Capitolul 2 310Capitolul 3 311Capitolul 4 311Capitolul 5 312Capitolul 6 313Capitolul 7 313Capitolul 8 314Capitolul 9 315Capitolul 10 315Capitolul 11 316Capitolul 12 317Capitolul 13 317Capitolul 14 318Examenul final 319

Index 325

Page 12: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xv

INTRODUCERE

Aceastã carte este destinatã tuturor celor care vor sã înveþe elementele de bazã ale limbajuluiJava fãrã sã participe la un curs oficial. De asemenea, cartea poate fi folositã ca bibliografiesuplimentarã pentru un curs. Pentru obþinerea celor mai bune rezultate, ar trebui sã porniþide la începutul cãrþii ºi sã o parcurgeþi pânã la sfârºit.

Dacã sunteþi familiarizat cu elementele de bazã ale programãrii, sãriþi peste primelecapitole, dar nu ºi peste întrebãrile recapitulative de la sfârºitul capitolelor, pentru a fisigur cã sunteþi pregãtit sã faceþi primii paºi în Java.

Dacã rãspundeþi corect la 90% din rãspunsuri, sunteþi pregãtit pentru Java. Dacã aveþiîntre 75% ºi 89% rãspunsuri corecte, rãsfoiþi capitolele 1 ºi 2. Dacã aveþi mai puþin de75% rãspunsuri corecte, gãsiþi-vã un loc liniºtit ºi începeþi sã citiþi capitolul 1. Astfel, vãasiguraþi cã acumulaþi suficiente cunoºtinþe pentru a aborda restul capitolelor despre Java.

Pentru a învãþa Java, trebuie sã aveþi un anumit nivel de experienþã în utilizareacalculatorului. Dacã v-am spune altceva, am încerca sã vã pãcãlim. Dar nu vã lãsaþiintimidat. Nici una din cunoºtinþele necesare nu depãºesc aspecte elementare legate deutilizarea sistemului de operare ºi introducerea textului într-un editor.

Cartea include un set practic de întrebãri recapitulative la sfârºitul fiecãrui capitol.Aceste seturi conþin întrebãri asemãnãtoare celor pe care le-aþi putea întâlni într-un cursde Java. În timp ce rãspundeþi la întrebãri puteþi sã reveniþi asupra textului din capitolulrespectiv (ºi chiar ar trebui sã o faceþi). Când consideraþi cã sunteþi pregãtit, rezolvaþitestul, scrieþi rãspunsurile pe hârtie, apoi daþi unui prieten hârtia cu rãspunsurile. Rugaþi-lsã vã spunã punctajul, dar nu ºi întrebãrile la care aþi rãspuns greºit. Veþi gãsi rãspunsurilecorecte la sfârºitul cãrþii. Nu treceþi la urmãtorul capitolul decât dupã ce aþi obþinut unpunctaj satisfãcãtor la testul recapitulativ.

Page 13: DESPRE AUTOR - cdn4.libris.ro · despre dezvoltarea aplicaþiilor Java. De asemenea, este membru al programului Java Community Process Program. A creat primul comitet de urmãrire

xviJava fãrã mistere

De asemenea, la sfârºitul cãrþii veþi gãsi un examen final. Întrebãrile cuprinse în acestasunt practice ºi sunt extrase din toate capitolele cãrþii. Încercaþi acest examen dupã ce aþiparcurs toate capitolele ºi aþi trecut de toate testele recapitulative. Un rezultat satisfãcãtorînseamnã cel puþin 75% din rãspunsuri corecte. Rugaþi un prieten sã vã spunã punctajul,fãrã sã vã indice întrebãrile la care aþi greºit.

Vã recomandãm sã vã rezervaþi în fiecare zi una sau douã ore pentru aceastã carte. Artrebui sã parcurgeþi astfel un capitol pe sãptãmânã. Abordaþi cartea într-un ritm constant.Lãsaþi-vã timp pentru asimilarea informaþiilor. Nu vã grãbiþi. Veþi termina cursul în câtevaluni, apoi puteþi folosi cartea ca material de referinþã.