Java Teorie
Java Teorie
Clas: set de obiecte cu caracteristici i funcionalitate identice (termenul de clasa se substituite termenului de tip)
O clasa reprezinta o modalitate de a descrie un nou tip de date. Clasa este o descriere a unei multimi de obiecte caracterizate prin
structuri si comportamente similare. De aceea, o clasa va cuprinde definitiile datelor si operatiilor ce caracterizeaza obiectele clasei
respective.
Datele definite intr-o clasa se mai numesc atribute, iar operatiile se mai numesc metode sau functii-membru. Atributele si metodele
formeaza membrii unei clase.
Sintaxa folosita pentru a defini o clasa in Java este:
class nume_clasa {
// date si metode
}
Salvarea pe disk se face in folderul built cu numele clasei si extensia .class
2. Ce este un package?
Un package grupeaza toate clasele , Utilizate pentru organizarea claselor . Packageurile pot si comprimate sub forma jar.
3. Defineste final, finally finalize.
Final- o clasa declarata cu final nu poate fi subclasata. O clasa declarata ca final opreste linia de mostenire, nu se poate extinde o clasa finala.
O metoda declarata cu final nu poate fi suprascrisa.O variabila declarata cu final poate fi initializata numai o singura data. Utilizata in special
pentru mostenire
Finally- Blocul declarat cu finally se executa mereu dupa try and catch atunci cand apare o exceptie neasteptata sau fara a fi o exceptie.Este
utilizat pentru a evita . Ajuta programatorul sa evite curatarea codului accidentala prin return break sau continue.
Finalize-este o metoda care daca este prezenta intr-o clasa este apelata inaintea garbage collectorului. Metoda finalize() este utilizata pentru
curatarea codului inainte ca un obiesct sa fie luat de garbage colector
try {
// codul care este susceptibil sa genereze exceptie
} catch (Type1 tp1) {
// exceptii de tipul Type1
} catch (Type2 tp2) {
// exceptii de tipul Type2
}
finally {
// cod care se executa indiferent de tipul de exceptie aruncat (sau nu)
}
Try catch functioneaza ca un switch pe tipul de exceptie
2 modalitati de tratare a erorilor
Termination: eroarea este aruncata
Resumption: se insereaza cod try catch pt rezolvarea erorii
Blocul "try" contine instructiunile de deschidere a unui fisier si de citire dintr-un fisier ambele putnd produce exceptii. Exceptiile provocate
de aceste instructiuni sunt tratate n cele doua blocuri "catch", cte unul pentru fiecare tip de exceptie.
Inchiderea fisierului se face n blocul "finally", deoarece acesta este sigur ca se va executa. Fara a folosi blocul "finally" nchiderea fisierului ar
fi trebuit facuta n fiecare situatie n care fisierul ar fi fost deschis, ceea ce ar fi dus la scrierea de cod redundant:
11. Descrieti modulele de creare a obiectelor din tipul claselor interioare care nu sunt anonimie
Clasa interioar este necesar numai clasei exterioare. Pentru reducerea numrului de clase de nivel superior si pentru simplificarea
comunicrii ntre clasele asculttor la evenimente putem defini clasele receptor ca niste clase interioare cu nume, incluse n clasa cu
fereastra aplicatiei:
12. Fie un system formal definit pe alfabetul format din literele a si b.Limbajul format accepta doar cuvinte care se incheie cu aab.Sa se
scrie automatul finit determinist pentru acest limbaj si reprezentarea limbajului in BNF.
13. Descrieti modaliatea de realizare a unui iterator si incercati sa furnizati un exemplu concret de utilizare a acestui sablon de
programare
Un iterator este un obiect care permite traversarea unei colectii si modificarea acesteia (ex: stergere de elemente) in mod
selectiv. Puteti obtine un iterator pentru o colectie, apeland metoda sa iterator(). Interfata Iterator este urmatoarea:
Proprietatea de upcast presupune tratarea unui obiect dintr-o clasa derivata ca si cum ar fi din clasa de baz.
Legare (binding) = asocierea dintre numele metodei si corpul metodei. Late binding necesita un mecanism pt identificarea
tipului la executie(RTTI), pt a se identifica in mod corect corpul metodei care trebuie apelat. In cazul late binding, legarea se face la
executie, exact inainte de executia efectiva a metodei. Se utilizeaza late binding pt orice apel de metoda, cu exceptia metodelor static
si final.
15. Care este rolul constructorului de copiere in cazul agregarii indirecte?
Constructorul este o metod special apelat automat la instanierea unei clase i face operaiile necesare pentru iniializarea fiecrui
obiect al unei clase fie ea static sau dinamic. Dac se folosete pentru a iniializa un obiect cu alt obiect atunci denumirea de
constructor de copiere.
Agregarea este relatia intre doua obiecte in care unul dintre obiecte apartine celuilalt obiect. Agregarea reda apartenta unui obiect la
un alt obiect.
Din punct de vedere conceptual, exista 2 tipuri de agregare:
strong la disparitia obiectelor continute prin agregare, existenta obiectului container inceteaza (de exemplu, o carte nu poate exista
fara pagini)
weak obiectul-container poate exista si in absenta obiectelor agregate (de exemplu, o biblioteca poate exista si fara carti)
agregare indirect ?
19. Suprancrcarea
Suprancrcarea unei metode (owerloading) este procesul prin care n cadrul unei clase sunt adugate dou sau mai multe metode cu
acelai nume dar cu numr diferit de parametri. n momentul apelrii metodei, mediul de rulare va ti exact ce metod s apeleze pe baza
parametrilor specificai astfel nct nu exista posibilitate de confuzie si de apelare a unei metode greite.