Sunteți pe pagina 1din 14

***

Saptamana 1

** Nivel 1

Raspunsuri pentru Java 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 este simplu, orientat pe obiecte, robust, sigur, portabil, interpretat, neutru fata de arhitectura, concurent, dinamic si distribuit;

3 Ce contine mediul de executie Java? -contine masina virtuala Java si un nucleu al bibliotecilor 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 forma de programare, in care programatorii definesc clase de obiecte, iar programul contine un ansamblu de clase si obiecte, care comunica intre ele prin mesaje.

6 Ce este clasa? -Clasa este o extensie a conceptului de tip de date si contine o structura de date, impreuna cu metodele (functiile) care se aplica acestor date.

7 Ce este obiectul si ce legatura exista intre clasa si obiect? -Obiectul este o instantiere (o instanta) a clasei. In acelasi program se pot folosi 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? -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 un 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 cele 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 clasa 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 calculator si functioneaza direct sub controlul

sistemului de operare, avand acces la toate resursele calculatorului respectiv; -applet (miniaplicatie) - este un program care se transmite prin reteaua de calculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea acces 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 calculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea acces la fisierele sau sistemul de intrare/iesire al calculatorului pe care se executa -servlet - un program care se executa pe un 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 acelasi 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 numai text neformatat, de exemplu

"Notepad"

19 Prin ce comanda se cere compilarea unui fisier sursa Java? -javac <fisier_sursa>

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 executarea unei aplicatii? -java <nume_aplicatie>

*** Saptamana 2

** Nivel 1

1 Ce este un comentariu? -Comentariile sunt texte care pot fi introduse in programul sursa, dar nu sunt 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 /* <comentariu> */ b/ comentarii de sfarsit de linie, care incep cu simbolul // si continua pana la sfarsitul liniei respective, deci au forma // <comentariu> c/ comentarii care sunt destinate reproducerii in documentatia clasei si au forma /** <comentariu> */ 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 rezultat 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(<sir>) -System.out.print(<sir>)

6 Ce sunt identificatorii si cum se alcatuiesc ei in Java? -Numele date programelor sau componentelor acestora (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 cuvinte, 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 unei 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 pot 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 posibil 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, short, 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 baza

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 sufix.

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, semne 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 consecinta, 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). Fiecare 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

-instructiunea switch - prin care se realizeaza structura de comutare;

-instructiunile while, do

else - prin care se realizeaza structura alternativa;

while si for - prin care se realizeaza structurile de selecti

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. Forma 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. Domeniul 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

- if(expresie_booleana) instructiune -if(expresie_booleana)

else

instructiune_1

else

instructiune_2

18 Ce sunt exceptiile?

-In mediul de lucru Java, la aparitia unei exceptii 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, multimea de operatii si

reprezentarea datelor in memoria interna a masinii virtuale Java pentru fiecare tip sunt definite in insasi specificatia limbajului Java si nu mai pot fi modificate de programatori

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 clasei 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 clasei 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 obiecte 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 clase 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 necesare 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 (subpachet) 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 celor 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 si 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 exista 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 tip 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

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.

- valoarea NaN (Not a Number) pentru tipul 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 realizarea 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 pereche 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 al 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 considerate drept referinte

la tablouri, a b c sunt referinte la tablouri cu componente de tipuri corespunzatoare fiecarei declaratii

57 Cum se initializeaza in Java un tablou unidimensional?

- a/ indicand valorile componentelor tabloului, separate prin virgule si cuprinse intre acolade, ca in exemplele

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 tipului 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 sunt 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 metodelor, 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 acolada 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 contin 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 difere

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 unei 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 (exceptii sau erori hardware), cat si de programe (exceptii software). Exemple de exceptii hardware pot fi intreruperile, eroarea de impartire la zero, 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 al 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 consecinta, 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 metode 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 consecinta, 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 constructor, 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 careia:

- dintr-o clasa se pot deriva alte clase

9 Ce relatie exista intre o clasa si superclasa ei? -- clasa derivata mosteneste campurile si 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 subclasa;

-

campurile superclasei pot fi ascunse in subclasa prin campuri cu acelasi nume dar care pot avea, eventual, alt

tip.

- campurile unei clase pot fi ascunse chiar si in metodele clasei respective, daca aceste 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): public, 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 referinta 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 subclasa o metoda avand aceeasi semnatura cu una din superclasa. Atunci cand se redefineste o metoda protejata, modificatorul de acces al acesteia poate fi mentinut, 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 campuri 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, daca intr-o subclasa se declara 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 va avea in clasa derivata acelasi nume si

aceeasi lista de parametri ca in superclasa, dar va avea 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 aplicatiei 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 contine 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 poate face folosind drept calificator referinta la o instanta

14