Raspunsuri pentru Java 1 *** Saptamana 1 ** Nivel 1 1 Ce este Java? -Java este un limbaj de programare; -un mediu de executie; -o platforma pentru dezvoltarea de aplicatii; -o tehnologie software . 2 Ce calitati are limbajul de programare Java? -fiind in prezent unul din limbajele cele mai larg folosite;limbajul folosite;limbajul este simplu, orientat pe obiecte, robust, sigur, portabil, interpretat, neutru neutru fata de arhitectura, concurent, dinamic si distribuit; 3 Ce contine mediul de executie Java? -contine masina virtuala Java si un nucleu al b ibliotecilor de clase Java; 4 Ce contine platforma Java? -compilatorul Java (Java Compiler); masina virtuala Java (Java Virtual Machine); bibliotecile de clase Java (Java Class Libraries); -vizualizatorul de appleturi Java (Java AppletViewer); depanatorul Java (Java Debbuger) si alte instrumente de dezvoltare; -documentatia. 5 Ce este programarea orientata pe obiecte? -Programarea orientata pe obiecte (POO) este o form a de programare, in care programatorii definesc c lase de obiecte, iar programul contine un ansamblu de c lase si obiecte, care comunica intre ele prin pr in mesaje. 6 Ce este clasa? -Clasa este o extensie a conceptului de tip d e date si contine o structura de date, impreuna cu metodele (functiile) care se aplica acestor date. 7 Ce este obiectul si ce legatura exista exista intre clasa si obiect? -Obiectul este o instantiere (o instanta) a clasei. In acelasi program se pot folos i mai multe obiecte apartinand aceleeasi clase, sau unor clase diferite. 8 Prin ce se determina starea obiectului? - Starea obiectului depinde de datele pe care acesta le contine 9 Prin ce se defineste comportamentul obiectului obiectului? ? -comportamentul este dat de metodele clasei respective. 10 Ce deosebire exista intre variabilele statice si cele nestatice? -Variabilele statice (ale clasei) apartin clasei, adica au aceeasi valoare pentru toate obiectele clasei respective. -Variabilele de instanta (nestatice) apartin obiectului (instantei), deci au valori diferite de la u n obiect la altul 11 Ce deosebire exista intre metodele statice si cele nestatice? -Metodele statice (ale clasei) pot folosi numai variabilele statice ale clasei respective, in timp ce metodele nestatice pot folosi atat variabilele statice, cat si pe ce le ale instantei. 12 Ce deosebire exista intre datele sau metodele publice si cele private? -Cele publice sunt accesibile din orice alta clasa, in timp ce cele private sunt accesibile numai din c lasa careia ii apartin. 13 Care sunt principalele tipuri de produse software care pot fi scrise in limbajul Java? -Limbajul Java este folosit cel mai frecvent pentru a scrie urmatoarele trei tipuri de programe: aplicatie ;applet;servlet. 14 Ce deosebire exista intre applet si aplicatie? -aplicatie--este un produs software care se instaleaza pe un anumit ca lculator si functioneaza direct sub controlul sistemului de operare, avand acces la toate resursele ca lculatorului respectiv; -applet (miniaplicatie) - este un program care se transmite prin reteaua de c alculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea a cces la fisierele sau sistemul de intrare/iesire al calculatorului pe care se executa 1
15 Ce deosebire exista intre applet si servlet? -applet (miniaplicatie) - este un program care se transmite prin reteaua de c alculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea a cces la fisierele sau sistemul de intrare/iesire al calculatorului pe care se executa -servlet - un program care se executa pe u n server de retea. 16 Care este metoda care trebuie sa existe in mod obligatoriu in orice aplicatie? -metoda principala, cu care incepe executia aplicatiei;aceasta metoda se numeste main . 17 Ce este un fisier sursa Java si cum se stabileste numele lui? -Programul sursa pentru aceasta clasa va fi editat sub forma unui fisier separat, care are a celasi nume cu clasa si are extensia Java. 18 Ce fel de editor se foloseste pentru crearea fisierului sursa? -Pentru crearea fisierului se va folosi un editor simplu, care genereaza numa i text neformatat, de exemplu "Notepad" 19 Prin ce comanda se cere compilarea unui fisier sursa Java? -javac 20 Ce se obtine in cazul in care compilarea a decurs corect? -Pe ecran apare din nou promptul sistemului de operare, fara a se afisa un mesaj de eroare 21 Ce se obtine daca compilarea nu a reusit? -un mesaj de eroare, care indica fie ca exista erori in program, care a fost sesizate de compilator, fie ca exista erori in linia de comanda prin care ati cerut compilarea 22 Prin ce comanda se cere exe cutarea unei aplicatii? -java *** Saptamana 2 ** Nivel 1 1 Ce este un comentariu? -Comentariile sunt texte care pot fi introduse in programul sursa, dar nu su nt luate in consideratie de compilator si deci nu au efect in timpul executarii programului 2 Ce fel de comentarii pot sa apara in fisierele sursa Java? -a/ comentarii care se pot extinde pe una sau mai multe linii si au forma /* */ b/ comentarii de sfarsit de linie, care incep cu simbolul // si continua pana la sfarsitul liniei respective, deci au forma // c/ comentarii care sunt destinate reproducerii in docume ntatia clasei si au forma /** */ deci se deosebesc formal de cele de la punctul a numai prin faptul ca incep cu simbolul /**. 3 Cum se reprezinta un sir in program? -Sirul se reprezinta in program printr-o succesiune de caractere cuprinsa intre ghilimele 4 Ce este concatenarea si care este operatorul prin care se realizeaza? -reprezentata prin operatorul +;Expresia sir1+sir2, in care operatorul + este plasat intre doua siruri, are ca rez ultat un nou sir, care contine cele doua siruri-operanzi puse unul dupa altul 5 Prin ce metode se afiseaza un sir de caractere pe ecran? -System.out.println() -System.out.print() 6 Ce sunt identificatorii si cum se alcatuiesc ei in Java? -Numele date programelor sau componentelor aces tora (clase, variabile, metode etc.) se numesc identificatori. Identificatorii se aleg de catre programator, respectand anumite reguli. 7 Ce sunt cuvintele cheie? -In orice limbaj de programare, exista un set de cu vinte, numite cuvinte cheie, care sunt considerate simboluri sintactice si nu pot fi folosite in program ca identificatori. 2
8 Ce este un literal? -Literalii sunt reprezentarile in fisierele sursa ale valorilor constante 9 Ce separatori se folosesc in limbajul Java? -{ } ( ) [ ] ; , . 10 Ce sunt operatorii? -Operatorii sunt simboluri ale unor operatii 11 Ce este efectul lateral al operatorului? -modifica valorile operanzilor 12 Toti operatorii au efect lateral? -nu 13 Ce sunt variabilele? -variabila este un simbol dat unei valori, care apartine u nei multimi de valori ce constituie domeniul de definitie al variabilei respective 14 Ce este numele variabilei? -Numele variabilei este un identificator 15 Ce se intelege prin declararea variabilei? -se intelege precizarea, pentru compilator, a tipului si numelui acesteia 16 Ce este o variabila finala? -se numesc variabile finale acele "variabile", ale caror valori nu p ot fi modificate prin program 17 Ce este un tip de date? -Tipul de date este unul din conceptele fundamentale ale programarii calculatoarelor. Tipul de date este o multime de valori, asociata cu o multime de operatii care se pot face asupra valorilor respective. 18 Ce tipuri de date primitive exista in limbajul Java? -tipul boolean; -tipurile numerice : tipuri intregi: byte, short, int, long si char; tipuri reale: float si double; tipul char 19 Care este multimea de valori a tipului boolean? -{true, false} 20 Care este operatorul de negatie si ce efect are? -! (semnul exclamarii) ;!a ->>daca a are valoarea true, atunci !a are valoarea false si invers 21 Ce sunt operatorii logici & si &&? -Operatorii & si && realizeaza operatia logica SI. Expresiile a&b si a&&b ,in care a si b sunt operanzi de tip boolean, are valoarea true (adevarat) daca si numai daca atat a cat si b au valoarea true. In celelalte cazuri expresia are valoarea false. 22 Ce sunt operatorii logici | si ||? -Operatorii | si || realizeaza operatia logica SAU. Expresiile a|b si a ||b , in care a si b sunt operanzi de tip boolean, are valoarea false daca si numai daca ambii operanzi au valoarea false. In celelalte cazuri expresia are valoarea true. 23 Care sunt tipurile de date numerice? -tipuri intregi: byte, short, int, long si char; -tipuri reale: float si double; -tipul char 24 Ce este operatia de atribuire? -Prin operatia de atribuire se da (se atribuie) unei variabile o noua valoare, care o inlocuieste pe cea deja existenta 25 Cum actioneaza operatorii == si !=? -operatorii relationali == si !=. Acestia sunt operatori binari fara efect lateral. La aplicarea unui astfel de operator, rezultatul operatiei este valoarea booleana true (adevarat) sau false (fals). 26 Ce efect are operatorul logic ^?
3
- Operatorul ^ realizeaza operatia logica SAU-EXCLUSIV. Expresia a^b , in care a si b sunt operanzi de tip boolean, are valoarea true daca si numai daca cei doi operanzi au valori diferite (unul este adevarat, iar celalalt fals). Daca cei doi operanzi au valori identice, valoarea expresiei este false 27 Ce contine o declaratie de tip? -Declararatiile de tip sunt instructiuni prin care se specifica tipul, numele si, daca este necesar, valoarea initiala a datelor folosite in program tip variabila1, variabila2, ..., variabilaN; 28 Ce este conversia de tip? -datele pot fi convertite dintr-un tip in altul. Dupa caz , conversia se poate face implicit, sau poate fi ceruta explicit prin program 29 Ce este castul si care este forma lui sintactica? -. In schimb, la conversia de la o lungime mai mare la una mai mica, se retin numai octetii situati in partea dreapta a numarului, eliminandu-se octetii din stanga care depasesc noua lungime. Prin aceasta este p osibil sa se modifice valoarea numarului si chiar semnul lui. 30 Care sunt operatorii de incrementare si decrementare? -Operatorii de incrementare ++ si decrementare -31 Ce operatori de comparatie se folosesc in cazul datelor de tipuri intregi? -< mai mic decat <= mai mic decat sau egal cu > mai mare dacat >= mai mare decat sau egal cu == este egal cu != este diferit de 32 Cum se reprezinta intern datele de tipuri intregi? -Reprezentarea interna a datelor de tip byte, s hort, int si long se face sub forma de numere intregi cu semn, in sistemul de numeratie binar 33 Cum se scriu literalii in sistemul octal? -In sistemul octal, literalii intregi sunt numere cu sau fara semn, scrise in sistemul de numeratie octal (cu b aza opt) si care incep cu cifra 0. Amintim ca cifrele sistemului octal sunt 0, 1, 2, 3, 4, 5, 6 , 7. 34 Cum se scriu literalii in sistemul hexazecimal? -In sistemul hexazecimal, literalii intregi sunt numere cu sau fara semn, scrise in sistemul de numeratie hexazecimal (cu baza 16) si care incep cu prefixul 0x. Amintim ca cifrele sistemului hexazecimal sunt: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 35 Pot avea semn literalii octali si cei hexazecimali? -da 36 Ce sunt datele in virgula mobila si ce corespondent au ele in matematica? -datele care apartin acestor tipuri sunt numere reale 37 Ce tipuri de date in virgula mobila exista in Java? -float double 38 Ce sunt literalii in virgula mobila? -sunt reprezentarile valorilor reale in programele Java 39 Ce valori speciale pot avea literalii in virgula mobila? -literalii de tip float se termina cu litera f sau F, in timp ce literalii de tip double nu au un astfel de su fix. 40 Ce operatii aritmetice se poa efectua asupra numerelor in virgula mobila? -atribuire, de conversie de tip, operatii aritmetice si de comparatie, atribuirea compusa 41 Ce se intampla daca, la o impartire in virgula mobila, impartitorul are valoarea zero? -impartirea la zero a nu mai este considerata o exceptie, ci este o operatie permisa. Rezultatul impartirii la zero depinde de valoarea deimpartitului si de semnele celor doi operanzi 42 Ce fel de date contine tipul char? -tip char sunt caractere, adica simboluri tipografice elementare: litere, cifre, sem ne de punctuatie, simboluri matematice 4
43 Cum se reprezinta literalii de tip char? -, reprezentarea interna a caracterelor se face pe 2 octeti (16 biti), in sistemul Unicode 44 Ce este o secventa escape? dati exemple. -'\b' deplasare la stanga cu o pozitie (backspace);'\n'trecere la linie noua (line feed, NL) 45 Ce operatii se pot face supra datelor de tip char? -tipul char este considerat tip de date intregi. In c onsecinta, toate operatiile care se aplica tipurilor intregi -de atribuire, de conversie de tip, operatii aritmetice, de comparatie, operatii de deplasare binara, operatii logice pe biti si operatii de atribuire compusa 46 Care sunt operatorii de atribuire compusa si ce efect au? -+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>=. ***Saptamana 3 ** Nivel 1 1 Ce este o expresie? -expresia este o combinatie permisa ("legala", corecta) de simboluri, care reprezinta o valoare 2 Cum se stabileste tipul unei expresii? -Tipul expresiei este acelasi cu tipul valorii ei 3 Fie a si b variabile de tip byte, c de tip int, u de tip float si v de tip double. Care sunt tipurile urmatoarelor expresii: a+b, a*c, a*c+u, u-2*v. -Expresii cu date primitive 4 Ce este precedenta operatorilor? -precedenta, adica un nivel de prioritate in aplicarea operatorului respectiv 5 In ce ordine se aplica operatorii cu acelasi nivel de precedenta? -se aplica de la stanga la dreapta 6 In ce ordine se evalueaza operanzii unui operator binar? -operandul din partea stanga se evalueaza inaintea celui din partea dreapta 7 Ce forma sintactica are expresia conditionala si care este semnificatia acestei expresii? -operand1 ? operand2 : operand3 8 Ce este o instructiune? -procesul de calcul este controlat de instructiuni (enunturi). F iecare instructiune indica una sau mai multe actiuni pe care trebuie sa le execute calculatorul 9 Ce deosebire este intre instructiunile simple si cele structurate? -Instructiunile simple nu contin in interiorul lor alte instructiuni 10 Ce este instructiunea vida si cum se scrie? -este instr. care nu are nici un efect asupra instructiunii ; " ; " 11 Ce este o instructiune-expresie? -instructiunile-expresie sunt formate dintr-o expresie de atribuire, de incrementare/decrementare sau de invocare de metoda, urmata de caracterul ';' 12 Ce deosebiri exista intre o expresie si o instructiune-expresie? -expresiile sunt de de tip boolean, int, long, float, double ,instructiunile-expresie sunt formate dintr-o expresie de atribuire, de incrementare/decrementare sau de invocare de metoda, urmata de caracterul ';' 13 In ce consta teorema de structura din metoda programarii structurate? -orice program poate fi intocmit folosind numai trei structuri de control fundamentale: structura secventiala, structura alternativa si structura repetitiva 14 Care sunt categoriile de instructiuni de control admise de metoda programarii structurate? -blocul - prin care se realizeaza structura secventiala; -instructiunile if si if .. else - prin care se realizeaza structura alternativa; -instructiunea switch - prin care se realizeaza structura de comutare; -instructiunile while, do .. while si for - prin care se realizeaza structurile de se lecti 15 Ce fel de structura de control este un bloc si care este forma lui sintactica? -Blocul este o secventa de instructiuni cuprinsa intre acolade. F orma sintactica a blocului este, deci, urmatoarea: 5
{ secventa_de_instructiuni } 16 Ce sunt variabilele locale si care este domeniul lor de vizibilitate? -Variabilele declarate intr-un bloc sunt variabile locale ale plocului respectiv. Domen iul de vizibilitate al unei variabile locale incepe in locul din program in care aceasta a fost declarata si se incheie la sfarsitul blocului care contine declaratia respectiva 17 Prin ce instructiuni se realizeaza structura de control alternativa si care este forma lor sintactica? -if si if ... else - if(expresie_booleana) instructiune -if(expresie_booleana) instructiune_1 else instructiune_2 18 Ce sunt exceptiile? -In mediul de lucru Java, la aparitia unei exc eptii se genereaza un obiect special, pe care il vom numi exceptie, care contine informatia despre exceptia respectiva 19 Ce deosebire este intre exceptii si erori? -Deosebirea dintre exceptii si erori este ca exceptiile sunt considerate ca pot fi tratate prin program, in timp ce erorile sunt considerate mai curand nerecuperabile 20 Care este forma sintactica a instructiunii de tratare a exceptiilor si cum trebuie ea interpretata? -try { secventa } catch (ClasaExceptie1 variabila1) { secventa1 } catch (ClasaExceptie2 variabila2) { secventa2 } ............... catch (ClasaExceptieN variabilaN) { secventaN } [finally { secventa_finalizatoare }] ***Saptamana 4 ** Nivel 1 1 Ce deosebire este intre tipul referinta si tipurile primitive? -Tipurile primitive sunt predefinite in limbaj, in sensul ca numele, multimea de date, mu ltimea de operatii si reprezentarea datelor in memoria interna a masinii virtuale Java pentru fiecare tip sunt de finite in insasi specificatia limbajului Java si nu mai pot fi modificate de pr ogramatori 2 Unde sunt plasate in memorie obiectele? -In memoria masinii virtuale Java, obiectele sunt plasate intr-o zona de memorie speciala, numita memorie dinamica 3 Care sunt operatiile permise asupra variabilelor-referinta? -Operatiile permise asupra datelor de tip referinta sunt cele date de operatorii de atribuire (=), egalitate (==) si inegalitate (!=) care au aceleasi semnificatii si mod de utilizare ca pentru toate celelalte tipuri de date. 4 Cum se declara variabilele referinta? 6
-String s1, s2, s3; arata ca s1, s2 si s3 sunt variabile referinta catre obiecte din clasa String, adica din clasa sirurilor de caractere 5 Ce este un camp? -Datele unei clase se numesc campuri, sau variabile membre 6 Ce deosebire este intre campurile statice si cele nestatice? -Cand clasa este instantiata, in memoria masinii virtuale Java se construieste un obiect (o instanta a c lasei respective). Obiectul contine numai campuri nestatice. Campurile statice se pastreaza in memorie intr-un singur loc, care este rezervat clasei respective. 7 Ce este o metoda? -Metoda este o functie, care intoarce o valoare si poate avea, de asemenea, efect lateral 8 Ce deosebire este intre metodele statice si nestatice? -Metodele statice pot invoca numai campurile statice ale clasei respective, in timp ce metodele nestatice pot invoca atat campurile statice, cat si cele nestatice (ale unei instante a c lasei respective). 9 Cum este invocata o metoda statica? -nume_clasa.nume_metoda(parametri_efectivi) 10 Cum este invocata o metoda a instantei? -referinta_la_obiect.nume_metoda(parametri_efectivi) 11 Ce este un constructor? -Constructorul este o procedura speciala, prin care se construiesc obi ecte dintr-o anumita clasa 12 Cum este invocat un constructor? - new nume_constructor(parametri_efectivi) 13 Ce este mostenirea? -Mostenirea este una din proprietatile fundamentale ale claselor in programarea orientata pe obiecte. Ea consta in faptul ca dintr-o clasa se pot deriva alte clase. Clasa de baza se mai numeste si superclasa, iar clasele derivate se numesc si subclase. 14 Ce este o superclasa? -Clasa de baza se mai numeste si superclasa, iar clasele derivate se numesc si subclase. 15 Ce legatura este intre o clasa si clasele derivate din aceasta? - in programarea orientata pe obiecte este permisa mostenirea multipla, adica o clasa poate avea mai multe superclase. In limbajul Java este permisa numai mostenirea simpla, deci fiecare clasa poate avea numai o singura superclasa. 16 Ce este polimorfismul? -Polimorfismul este o alta proprietate fundamentala a claselor. In limbajul Java este posibil ca o metoda a superclasei sa fie redefinita in clasa derivata. Aceasta inseamna ca ea va avea in clasa derivata acelasi nume si aceeasi lista de parametri ca in superclasa, dar va avea un comportament diferit. 17 Ce fel de mostenire este permisa in Java? -In limbajul Java este permisa numai mostenirea simpla 18 Care este radacina ierarhiei de clase in Java? - Singura exceptie o constituie clasa Object, care este radacina ierarhiei de clase Java si nu are superclasa. 19 Ce este un pachet? - Pachetul este o colectie de c lase reutilizabile destinate unui anumit domeniu de utilizare, care sunt puse la dispozitia programatorului sub forma compilata (bytecode) 20 Ce este Java API? -este descrierea unui set standard de pachete neces are programarii in Java. 21 Ce contine pachetul java.lang? -java.lang - contine clasele de baza necesare programarii in limbajul Java 22 La ce serveste declaratia import si ce forma are?
7
-Pentru a putea utiliza intr-un fisier-sursa Java un anumit pachet (subpac het) de clase, la inceputul fisierului respectiv trebuie pusa declaratia import nume_pachet.*; in care nume_pachet este numele calificat al pachetului respectiv. 23 Cum este importat pachetul java.lang? -import nume_pachet.NumeClasa; 24 Fie a si b doua obiecte. Ce deosebire este intre a.equals(b) si a==b? - metoda equals() intoarce valoarea true numai daca cele doua obiecte comparate sunt cu adevarat identice, adica au aceeasi adresa in memorie, ceeace se poate scrie si sub forma expresiei a==b 25 Ce rol are metoda toString()? -intoarce reprezentarea sub forma de sir de caractere (de obiect din clasa String) a obiectului caruia i se aplica. 26 Ce este o exceptie? -o situatie anormala in procesul de calcul 27 Ce este clasa Exception? -este radacina ierarhiei claselor de exceptii 28 Care este clasa sirurilor de caractere? -Clasa String 29 Ce este concatenarea sirurilor si prin ce operator se realizeaza? -"+"; Prin concatenarea a doua siruri se obtine un nou sir, rezultat din punerea ce lor doua unul in continuarea celuilalt. De exemplu, expresia "ABC"+"defg" are ca valoare sirul "ABCdefg". 30 Cum se compara doua siruri? -Compararea sirurilor se face in ordine lexicografica (in ordinea in care ar fi plasate intr-un dictionar) 31 Ce este ordinea lexicografica? 32 Cum se determina lungimea unui sir? -int length() Intoarce lungimea acestui sir (numarul de caractere continute) 33 La ce foloseste metoda trim()? -Intoarce un nou sir, obtinut din acest sir prin eliminarea spatiilor de la inceput s i de la sfarsit. 34 Ce fel de obiecte apartin clasei StringBuffer? -Obiectele clasei StringBuffer implementeaza siruri care pot fi modificate atat ca lungime, cat si sub aspectul caracterelor pe care le contin. 35 Ce deosebire este intre lungimea si capacitatea unui StringBuffer? - Lungimea este numarul de caractere continut efectiv, iar capacitatea este dimensiunea la un moment dat a tabloului de caractere continut in obiectul respectiv. 36 Care sunt principalele metode ale clasei StringBuffer? -public int length() - intoarce lungimea curenta a sirului (numarul de caractere existente efectiv in buffer); public int capacity() - intoarce capacitatea curenta a buffer-ului; public StringBuffer append(char c) - adauga la buffer caracterul c; public StringBuffer insert(int offset, char c) - insereaza in buffer caracterul c pe pozitia offset; public String toString() - intoarce un sir care are acelasi continut cu cel din acest StringBuffer. 37 Ce este o clasa acoperitoare de tip? - pentru fiecare din tipurile de date primitive ex ista o clasa acoperitoare de tip 38 Poate fi instantiata clasa Number? -da 39 Care sunt subclasele clasei Number? - public abstract byte byteValue() - intoarce numarul convertit la tipul primitiv byte, ceeace poate avea ca efect rotunjirea sau trunchierea; public abstract short shortValue() - intoarce numarul convertit la tipul primitiv short, ceeace poate avea ca efect rotunjirea sau trunchierea; public abstract int intValue() - intoarce numarul convertit in tipul primitiv int, ceeace poate avea ca efect rotunjirea; 8
public abstract long longValue() - intoarce numarul convertit la tipul primitiv long, ceeace poate avea ca efect rotunjirea; public abstract float floatValue() - intoarce numarul convertit la tipul primitiv float; public abstract double doubleValue() - intoarce numarul convertit la tipul primitiv double. 40 Cum se poate determina cea mai mare valoare pe care poate sa o aiba un numar de tip int? -public static final int MAX_VALUE - contine valoarea maxima pentru tipul de date int, adica valoarea 2147483647; 41 Cum se poate converti un numar intreg din forma externa in cea interna? - public Integer(String s) - converteste sirul s, primit ca argument, intr-un numar de t ip int si construieste obiectul Integer care contine acest numar; daca sirul s nu reprezinta forma externa a unui numar intreg, se obtine exceptia NumberFormatException. Remarcam deci ca se face analiza sintactica a sirului s pentru a se verifica daca acesta este cu adevarat un numar intreg. 42 Ce campuri statice contine clasa Double? © Copyright 2000 O.M.B. -public static final double MAX_VALUE - cea mai mare valoare pozitiva de tip double; public static final double MIN_VALUE - cea mai mica valoare pozitiva de tip double; public static final double NaN - valoarea NaN (Not a Number) pentru tipul double; public static final double POSITIVE_INFINITY - valoarea Infinity pentru tipul double; public static final double NEGATIVE_INFINITY - valoarea -Infinity pentru tipul double; public static final Class TYPE - un obiect din clasa Class cu informatii despre tipul primitiv double. 43 Cum se poate converti un numar in virgula mobila din forma externa in cea interna? -Double(String s) - construieste o instanta a clasei Double care contine valoarea primitiva de tip double a carei forma externa este sirul s primit ca argument; daca acest sir nu este corect sintactic, se obtine exceptia NumberFormatException. 44 In ce cod sunt reprezentate caracterele in Java? - in limbajul Java, caracterele sunt reprezentate pe 16 biti, in sistemul Unicode. 45 Ce este clasa Character? -Fiecare obiect al clasei Character "acopera" o valoare primitiva de tip char. 46 Ce este clasa Math? -contine un numar mare de functii matematice (functii trigonometrice, logaritmice, exponentiale etc) si doua constante matematice: numarul e si numarul pi. 47 Cum se poate calcula sinusul trigonometric al unui numar? - public static double sin(double a) - sinusul trigonometric sin a. ;Functiile matematice se prezinta in aceasta clasa sub forma de metode statice. 48 Cum se poate calcula radacina patrata a unui numar? -public static double sqrt(double a) 49 Cum se poate calcula logaritmul natural al unui numar? -public static double log(double a) 50 Scrieti in limbajul Java expresia prin care se calculeaza radacina patrata din 2u2+eu. -Math.sqrt(2*u*2+exp(double u)) 51 Ce campuri statice contine clasa System? -Clasa System contine campuri si metode utile pentru r ealizarea legaturii dintre aplicatie si sistemul de executie Java (cel care implementeaza masina virtuala Java) 52 Ce efect are metoda exit() din clasa System? -provoaca incheierea executarii programului 53 Ce este un tablou? -structura de date de acelasi tip, numite componente ale tabloului, care sunt specificate prin indici 54 Cum se declara in Java un tablou unidimensional? - a/ intr-o declaratie de variabile se pune simbolul [] (o perec he de paranteze drepte) dupa numele variabilei referinta la tablou. Ca exemplu, sa 9
consideram declaratiile urmatoare: int a, b, c[], d, e[]; String s1, ts1[], s2; - b/ Parantezele se pun dupa numele tipului de date sau a l clasei, in care caz, toate variabilele din declaratia respectiva sunt considerate drept referinte la tablouri. De exemplu, in declaratiile int[] i, j; long [] k, m; float []u, v; String[] ww; 55 Ce semnificatie are declaratia int a, b[], c;? ce sunt a, b si c? -a si c sunt variabile simple de tip double, deci ele pot primi valori simple de acest tip -b variabila referinta la tablouri de tip int (tablouri la care toate componentele sunt de tip int) 56 Ce semnificatie are declaratia int[] a, b, c;? ce sunt a, b si c? - toate variabilele din declaratia respectiva sunt c onsiderate drept referinte la tablouri, a b c sunt referinte la tablouri cu componente de tipuri corespunzatoare fiecarei dec laratii 57 Cum se initializeaza in Java un tablou unidimensional? - a/ indicand valorile componentelor tabloului, separate prin virgule si cuprinse intre acolade, ca in exemple le urmatoare: int a=27, b=-15, c[]={-3,72,-21},d=-5,e[]={231,-98}; String s1="un sir", ts1[]={"sirul 0", "sirul 1", "sirul 2"}, s2="alt sir"; float[] u={-1.24076f, 0.03254f, 27.16f}, v={2.7698E-12f, -3.876e7f}; - b/ folosind operatorul new, urmat de numele t ipului sau al clasei, insotit de dimensiunea tabloului (numarul de elemente din tablou) scrisa intre paranteze drepte, ca in exemplele urmatoare: double aa[]=new double[3]; String str[]=new String[2]; 58 Prin ce instructiune se creaza in Java un tablou cu 7 componente de tip double? -double aa[]=new double[7];// aa variabila 59 Cum se poate determina numarul de elemente dintr-un tablou unidimensional? -args.length 60 Cum sunt preluati parametrii din linia de comanda? -daca numarul de parametri este nul, se afiseaza mesajul "Nu ati introdus parametri in linia de comanda". In caz contrar, se afiseaza toti parametrii. Sa consideram ca lansarea acestui program s-a facut prin urmatoarea linie de comanda: java Parametri abcd EFG-HIjk 1376 7.3086 -15 61 Cum pot fi determinate valorile numerice ale parametrilor din linia de comanda? - unicul separator intre parametri este spatiul liber, iar numerele su nt preluate tot sub forma de siruri de caractere *** Saptamana 5 **Nivel 1 1.Care este cea mai simpla forma a unei declaratii de clasa? - class NumeClasa { declaratii_de_membri } 2.Ce sunt membrii unei clase? -CAMPURI,CONSTRUCTORI,METODE. 10
3.Ce este numele clasei din punct de vedere sintactic? -Numele clasei este un identificator. 4.Cu ce incepe numele unei clase? -Se obisnuieste ca numele clasei sa inceapa cu litera majuscula. Daca numele este compus din mai multe cuvinte,fiecare din acestea incepe cu majuscula. 5.Ce contine corpul clasei? -Corpul clasei cuprinde declaratii de membri ai clasei respective. Acestea pot fi: - declaratii de campuri; - declaratii de constructori; - declaratii de metode. 6.Ce asemanare este intre campuri si variabilele locale? -Declararea unor astfel de campuri se face asemanator cu cea a campurilor de instanta 7.Ce deosebire este intre campuri si variabille locale? -Campurile instantei se declara la fel ca variabilele locale ale me todelor, numai ca declaratia respectiva nu apare in blocul unei metode, ci in corpul clasei. 8.Ce sunt campurile statice si prin ce se deosebesc de cele nestatice? -Declararea unor astfel de campuri se face asemanator cu cea a campurilor de instanta, dar declaratia are in fata, in acest caz, modificatorul static. EX: static double u=3.65, v=2.87*u-3.1, x; 9.Pot exista clase care nu contin metode? -DA. 10.Care este cea mai simpla forma a unei declaratii de metoda? - tip_valoare_intoarsa nume_metoda(declaratii_de_argumente) { corpul_metodei } 11.Ce este numele metodei din punct de vedere sintactic? -nume_metoda=- este un identificator care, in mod uzual, incepe cu litera mica si constituie numele metodei; 12.Ce este corpul metodei si ce contine el? -Dupa aceasta lista de argumente se deschide ac olada unui bloc, care contine corpul metodei, adica secventa de instructiuni prin care se calculeaza valoarea functiei respective si/sau - daca este cazul - se efectueaza actiunile care constituie efectele laterale ale acesteia. 13.Cum se declara argumentele metodei? -declaratii_de argumente = este o lista de declaratii de argument separate prin virgula, deci ea poate avea forma: 14.Cum se declara tipul valorii intoarse? -tip_valoare_intoarsa = este tipul valorii primitive sau clasa valorii-referinta intoarsa de aceasta metoda; 15.Ce forma si ce semnificatie are instructiunea return? -Daca functia intoarce o valoare (diferita de void), aceasta se indica prin instructiunea return expresie; 16.Ce este o metoda statica? -La declararea metodelor statice, in fata tipului valorii intoarse se pune modificatorul static. Metodele care co ntin in declaratie acest modificator se numesc statice sau ale clasei, spre deosebire de metodele obisnuite care sunt ale instantei. 17.Ce restrictii trebuie respectate la declararea unei metode statice? - In corpul metodelor statice se pot folosi numai campurile statice ale clasei respective si se pot invoca numai alte metode statice ale acestei clase. 18.Ce este signatura metodei? -Signatura metodei consta din numele acesteia, insotit de lista de argumente. In consecinta, doua metode pot avea acelasi nume, daca difera intre ele prin signatura. Putem da exemple din clasele existente in pachetele deja studiate. 19.Pot exista in aceeasi clasa mai multe metode cu acelasi nume? -In aceeasi clasa pot exista mai multe metode cu acelasi nume cu conditia ca ele sa d ifere 11
prin numarul si/sau tipul argumentelor. © Copyright 2000 O.M.B. 20.Cum se face transferul argumentelor (parametrilor) de la metoda invocatoare la cea invocata? -In limbajul Java, transmiterea parametrilor (argumentelor) metodelor se face prin valoare. Aceasta inseamna ca: - daca argumentul apartine unui tip de date primitiv, se transmite chiar valoarea primitiva a argumentului respectiv; - daca argumentul apartine unui tip-referinta (este instanta a u nei clase), se transmite - de fapt - o referinta catre un obiect din clasa respectiva sau dintr-o clasa derivata din aceasta. 21.Cum pot fi generate exceptii in corpul unei metode? -Exceptiile si erorile pot fi generate atat de echipamente (excep tii sau erori hardware), cat si de prog rame (exceptii software). Exemple de exceptii hardware pot fi intreruperile, eroarea de impartire la z ero, unele incidente in subsistemele de intrare/iesire etc. Exceptiile software sunt mult mai diverse, depinzand de specificul programelor care le genereaza 22.Ce forma are instructiunea throw si la ce serveste? -throw new ConstructorExceptie(lista_argumente); -prevada, in anumite puncte ale programului, generarea unor exceptii, 23.La ce serveste clauza throws? -Este insa posibil ca metoda respectiva sa "arunce " mai departe exceptiile generate in interiorul ei. Pentru a indica aceasta proprietate, la declararea metodei, dupa paranteza care contine lista declaratiilor argumentelor formale se pune clauza throws ClasaDeExceptii, in care se indica numele clasei exceptiei care este "aruncata" catre metoda invocatoare 24.Ce deosebire este intre throw si throws? -throw furnizeaza ca argument un mesaj care arata ce eroare s-a produs -clauza throws. In metoda main se capteaza si se afiseaza atat aceste exceptii 25.Ce sunt clasele publice? -Clasele publice sunt clase care pot fi utilizate si in alte pachete, decat cel din care fac parte 26.Cum se declara o clasa publica? -Fiecare clasa publica se declara intr-un fisier separat, care are obligatoriu acelasi nume cu cel a l clasei extensia java. In declaratia de clasa, in fata numelui clasei se pune modificatorul public. 27 Ce este colectorul de reziduuri? -In masina virtuala Java, exista un colector de reziduuri de memorie (engleza: garbage collector) care elibereaza automat spatiul de memorie ocupat de obiectele catre care nu mai exista nici o referinta. In c onsecinta, programatorul nu mai este pus in situatia sa prevada explicit in program distrugerea obiectelor si, deci clasele nu mai contin destructori, ca in alte limbaje de POO. ***
Saptamana 6
** Nivel 1 1 Ce este incapsularea? -Incapsularea este una din proprietatile fundamentale ale claselor in programarea orientata pe obiecte. Campurile si metodele dintr-o clasa pot fi incapsulate, astfel incat sa nu fie vizibile din exteriorul clasei sau instantei in care se afla 2 Care sunt modificatorii de acces pentru campuri si metode? -: - private - pentru a specifica campuri sau o m etode private; - public - pentru a specifica campuri sau metode publice; - protected - pentru a specifica campuri sau metode protejate (care vor fi prezentate in sectiunea despre mostenire 3 Ce sunt constructorii? -Constructorii, ca si metodele, sunt niste subprograme 4 Ce particularitati prezinta declaratiile de constructori? - numele constructorului este intotdeauna acelasi cu al clasei careia ii apartine; 12
- constructorul nu intoarce o valoare. In consec inta, la declararea constructorului nu se specifica tipul valorii intoarse, ca la metode; - constructorii nu pot fi statici; - invocarea constructorilor se face numai prin operatorul new. 5 Poate avea o clasa mai multi constructori? cum se disting acestia? -Ca si in cazul metodelor, o clasa poate avea mai multi constructori, care sa difere intre ei prin signatura 6 Ce este constructorul implicit? -Daca intr-o clasa nu este declarat explicit nici un c onstructor, ea are un constructor implicit. 7 Ce este agregarea? -Agregarea este o caracteristica fundamentala a programarii orientate pe obiecte, conform careia un obiect poate contine alte obiecte 8 Ce este mostenirea? -Mostenirea este o trasatura fundamentala a programarii orientate pe obiecte, conform care ia: - dintr-o clasa se pot deriva alte clase 9 Ce relatie exista intre o clasa si superclasa ei? -- clasa derivata mosteneste campurile s i metodele superclasei; - metodele superclasei de baza pot fi redefinite in subclasa prin alte metode cu aceeasi signatura; - metodele statice ale superclasei pot fi ascunse in sub clasa; - campurile superclasei pot fi ascunse in subclasa prin campuri cu a celasi nume dar care pot avea, eventual, alt tip. - campurile unei clase pot fi ascunse chiar si in metodele clasei respective, daca ac este metode au argumente sau variabile locale cu acelasi nume. 10 Cate superclase poate avea o clasa in limbajul Java? -1 singura superclasa ;Exceptie face clasa Object, care este radacina ierarhiei de clase 11 Ce sunt membrii protejati ai clasei? -moduri de acces la membrii claselor (atat la campuri, cat si la metode): pub lic, privat si protejat 12 Ce sunt this si super? -doua referinte predefinite: this - este o referinta la "aceasta" instanta, adica la instanta din clasa in care se face re ferinta respectiva; super - este o referinta la superclasa 13 Ce particularitati prezinta constructorul unei clase derivate? -Pentru a se da valori initiale campurilor superclasei, in declaratia constructorului poate fi invocat constructorul superclasei prin instructiunea super(lista_parametri_efectivi); unde lista parametrilor efectivi este cea a constructorului superclasei. Aceasta instructiune, daca exista, trebuie sa fie prima instructiune din corpul constructorului clasei derivate. In lipsa ei, va fi invocat constructorul fara parametri al superclasei. 14 Ce se intelege prin redefinirea metodelor? -Redefinirea unei metode se face declarand in sub clasa o metoda avand aceeasi semnatura cu una din superclasa. Atunci cand se redefineste o metoda protejata, modificatorul de acces al acesteia poate fi ment inut, sau poate fi transformat in public. 15 Ce fel de metode pot fi redefinite? -nestatice ale unei clase pot fi redefinite in subclasele acesteia -In subclasa pot fi totusi si metodele superclasei care au fost redefinite 16 Ce este o metoda finala? -Metodele finale sunt metode care nu mai pot fi redefinite in clasele derivate 17 Ce se intelege prin ascunderea campurilor? -Campurile declarate intr-o clasa pot fi ascunse prin campur i cu acelasi nume declarate in subclasa, chiar daca acestea au tipuri diferite. Aceasta inseamna ca, in mod normal, in metodele clasei se folosesc campurile declarate in clasa respectiva, si nu cele cu acelasi nume ale superclasei. In subclasa pot fi, totusi, folosite si campurile superclasei, daca sunt calificate cu referinta super 13
18 In ce situatie o metoda poate fi ascunsa? -Metodele statice nu apartin instantelor, ci clasei. Din aceasta cauza, dac a intr-o subclasa se de clara o metoda statica cu aceeasi semnatura ca o metoda a superclasei, atunci se spune ca metoda din subclasa o ascunde pe cea din superclasa (nu o redefineste). 19 Este posibila declararea unei clase de exceptii proprii? -da; 20 Ce este o clasa finala? -Daca se doreste ca o clasa sa nu poata avea subclase, la declararea acesteia se foloseste modificatorul final 21 Ce este polimorfismul? -Polimorfismul este o alta proprietate fundamentala a claselor. In limbajul Java este posibil ca o metoda a superclasei sa fie redefinita in clasa derivata. Aceasta inseamna ca ea v a avea in clasa derivata acelasi nume si aceeasi lista de parametri ca in superclasa, dar va av ea un comportament diferit. 22 In ce situatii se manifesta polimorfismul? -Polimorfismul se manifesta atunci cand unei variabile-referinta pentru superclasa i se atribuie ca valoare o referinta catre o instanta a unei subclase a acesteia, in care una sau mai multe metode ale superclasei au fost redefinite 23 Cum se face conversia unei referinte dintr-o clasa in referinta dintr-o subclasa? -sa convertim explicit (prin cast) referinta la Object in referinta la clasa A sau B, in care exista metoda1(). In acest scop, vom folosi expresiile ((B)ob1).metoda1() sau, respectiv, ((A)ob2).metoda1(). Avand in vedere ca B este subclasa a lui A, iar variabila ob1 indica efectiv un obiect din clasa B, atat in expresia ((B)ob1).metoda1(), cat si in expresia ((A)ob1).metoda1() se va invoca metoda1() din clasa B, adica din clasa careia ii apartine efectiv obiectul indicat de variabila-referinta ob1. 24 Poate fi instantiata clasa care contine metoda main()? -Clasa care contine metoda main este clasa principala a unei aplicatii, deci este prima clasa care se incarca in masina virtuala Java la punerea in executie a ap licatiei respective. In acelasi timp, ea este o clasa ca oricare alta, care poate avea si instante 25 Ce este o clasa abstracta? -Clasele abstracte contin in declaratia lor modificatorul abstract 26 Ce este o metoda abstracta? -adica o metoda pentru care s-a declarat numai antetul, fara sa i se defineasca si corpul 27 Cum se declara o clasa abstracta? -De exemplu, daca A este o clasa abstracta, iar B este o subclasa concreta a clasei A, atunci este corecta declaratia A a1=new B(); 28 Ce este o interfata? -fiecare clasa are "interfata" sa intrinseca, prin care poate fi accesata din exterior. Aceasta "interfata" contine toate datele si metodele publice ale clasei respective. 29 Ce efect are faptul ca o clasa implementeaza o interfata? -Interfata descrie metodele publice si variabilele finale publice pe care trebuie sa le aiba o clasa care implementeaza interfata respectiva. Daca o clasa implementeaza mai multe interfete, ea c ontine toate metodele publice si variabilele finale publice ale acestora. 30 Ce este o clasa imbricata? -In limbajul Java se permite ca o clasa sa aiba ca membri alte clase. Acestea se numesc clase imbricate sau clase incuibate 31 Ce este o clasa interioara? -Clasa interioara (clasa imbricata nestatica) are cate o instanta in interiorul fiecarei instante a clasei care o contine. In consecinta, accesul la membrii ei se p oate face folosind drept calificator referinta la o instanta
14