Sunteți pe pagina 1din 10

1. Dati 2 exemple diferite ca semantica de utilizare ale lui this?

- In cadrul unei metode care are parametrii cu nume identic cu numele atributelor clasei.
In acesta situatie trebuie facuta o diferenta intre cele doua. Cu this, se califica atributele clasei.
- In cadrul constructorilor pentru a apela ceilalti constructori ai clasei.
- Pentru a testa ca obiectul primit ca parametru nu este chiar obiectul curent

2. Scrieti cel putin 2 tipuri de constructori p-entru clasa Complex din exemplul de mai jos?
public Complex{
private double real;
private double imag;

public Complex (double real){


this.real = real;

public Complex(double real, double imag){


this.real = real;
this.imag = imag;

public Complex(){

3.Ce face opratorul == pentru obiecte?


In cazul in care operatorul == este folosit impreuna cu date de tip referinta se verifica daca
cele 2 variabile refera acelasi obiecte

4.Instantiati obiectul 01 de tipu clasei urmatoare?

public class Clasei{

public static void main(String[]args){


Clasei o1 = new Clasei();
}
}

5.Instantiati si initializati un tablou de 5 numere cu valorile 1.4.9.16,25 cu o singura


instructiune?
Integer[]elemente = {1,4,9,16,25};

6. Scrieti cel putin 2 tipuri de contructor pentru clasa C?


pUBLIC CLASS c{
private int zi;

public C(){
}

public C (int zi) {


this.zi = zi;
}

7.Instantiati si initializati o matrice cu 2 linii si 3 coloane cu o singura instructiune?

int matrice[][] = new int[2][3];


8. Cum se face transmiterea parametrilor metodelor in java
Transmiterea parametrilor metodelor in Java se face prin valoare

9.Exemplu de 2 constructori pentru clasa Complex. la unul folositi instructiunea this la apela
public class Complex{
double real;
double img;

public Complex(){
this(0,0);
}
public Complex(double real, double img){
this.real = real;
this.ing = img;
}

}
10. Aveti clasa Circle
public class Circle{
private double x, y, r;
public Circle(double x, double y, double r){
this.x = x; this.y = y; this.r = r;
}
public Cicle (double r){
this(1,1,r);
}
}
11. Aveti clasa Circle
public class Circle{
private double x, y,r;
public Circle(double x, double y, double r){
this.x = x; this.y = y; this.r = r;
}
public Cicle ( Circle C){
this(C.x, C.y, C.r);
}

}
12. Cum se memoreaza datele membru statice?
Datele membre statice sunt date membre ale unei clase ce sunt partajate de toate obiectele.
Spre deosebire de datele membre obişnuite, care există în câte un exemplar pentru fiecare
obiect, datele membre statice nu aparţin fiecărui obiect al clasei, ci există într-un singur
exemplar comun tuturor obiectelor clasei respective.

13. Cum se face referirea datelor membre statice?


clasa.variabilaStatica
obiect.variabilaStatica este posibil dar nu ii recomandat

14. Metodele de tip clasa statice se declara folosind atributul static ca prefic al antelului.Cum
poti folosi "this" in corpul functiei?
Nu se poate folosi "this" in metodele statice.

15. Prin ce difera obiectele tip String fata de obiectele tip StringBuffer?
Obiectele de tip String sunt imutable ( aceste obiecte nu pot fi modificate),pe cand cele de tip
StrigBuffer sunt mutable( aceste obiecte pot fi modificate

16. Ce se afiseaza?
Parinte 0 (pt ca child extinde Parent si Child in constructor apeleaza automat
constructorul defualt al Parintelui
[pt ca nu a fost chemat manual alt constructor al lui Parinte prin
super(x)])
Child 1 2 (afisare a ceea ce pune println )

17. Ce este o clasa abstracta ? Dati un exemplu


O clasa declarata abstracta este o clasa sablon adica ea este folosita doar pentru a crea un
model comun pentru o serie de subclase.
O clasa Bstracta trebuie declarata abstracta daca ea este incomplet implementata( adica
nu toate metodele ei sunt definite), si doar clasele abstracte pot contine
metode abstracte(declarate dar nu implementate).

abstract class Dulciuri {


int kgZahar =0;
public void setZahar(int kgZahar) {
this.kgZahar = kgZahar;
}
public abstract void seteazaGlazura();
}

public class Fursecuri extends Dulciuri{


@Override
public void seteazaGlazura() {
System.out.println("Fursecurile n-au glazura !!");
}
}

18.Ce este o interfata.Construiti o interfata simpla?


Interfata este totalitatea metodelor unei clase si caracterizeaza comportamentul obiectelor din
clasa.
Interfetele Java abstractizeaza complet metodele clasei (interfata clasei) fata de orice
implementare.
Folosind cuvantul rezervat interface(in loc de class) specificam ce poate face o clasa si nu
cum realizeaza clasa acel lucru.

public interface CuDospire {


void dospeste(int ore);
boolean aDospitDestul();
}

19. Ce diferenta este intre overloading si overriding?


" Utilizarea a doua metode cu acelas nume dar cu parametri diferiti poarta denumirea de
OVERLOADING"
Overloading( redefinire) este mecanismul prin care in cadrul unei clase se pot scrie mai
multe metode, avand aceleasi nume, dar tipuri si
numere diferite de parametri de apel.
Supraîncarcarea se referă la posibilitatea de a avea într-o clasă mai multe metode cu
același nume, dar implementari diferite.
Supraîncărcarea are loc la compilare, motiv pentru care mai este numită și polimorfism
static.
Suprascrierea se referă la redefinirea metodelor existente în clasa părinte de către
clasa copil în vederea specializării acestor
Metodele din clasa parinte nu sunt modificate. Putem suprascrie doar metodele vizibile
pe lanțul de moștenire (public, protected).
O metodă din clasa copil suprascrie metoda din clasa părinte dacă are același tip de
return și aceeași semnatură (nume și parametri).
Spre deosebire de supraîncărcare care face acest lucru la compilare, în cazul
suprascrierii se determină ce metodă va fi apelată, în mod dinamic, la runtime
Din acest motiv, suprascrierea este cunoscută și ca polimorfism dinamic .

20. Enumerati tipurile de poilimorfism. Explicati-le pe scurt?

Polimorfismul este capacitatea unei entitati de a lua mai multe forme. In general sunt de 3
feluri :
Polimorfism parametric: Este cea mai slaba forma de polimorfism, fiind regasita in
majoritatea altor limbaje ce nu sunt orientate pe obiecte: Pascal,c.
Prin polimorfism paramtric se permite ca o implementare de functie sa poate prelucra
orice numar de paramentri.

Polimorfismul ad-hoc se mai numeste si supraincarcarea metodelor (overloading), mecanism


prin care in cadrul unei clase se pot scrie mai multe metode,
avand aceleasi nume, dar tipuri si
numere diferite de parametri de apel.Alegerea metodei care va fi apelata se va face la
compilare pe baza corespondentei intre tipurile de apel si cele formale

Polimorfismul de mostenire este cea mai evoluata forma de polimorfism. La


polimorfismul de mostenire este necesar sa existe o ierarhie de clase.
Polimorfismul de mostenire este posibil datorita suprascrierii (overriding) metodelor in
clasele derivate sau in clasele ce implementeaza o interfata (JAVA).
Legarea obiectului de metoda se face la executie si se numeste dynamic binding sau
late binding.

21. Cate tipuri de asociere exista intre clase? Explicati-le pe


exemplu.?????????????????????????????
 Relaţii între clase

1. -Generalizare/Specializare este o relatie logica intre cele doua clase, reprezentand 2


concepte A si B : B este o specializare a lui A cand despre cele 2
concepte A si B se poate spune ca B este un tip de A sau B este un A. exp : dulapul este
o piesa de mobilier.
2.- Asociere(colaborare) Presupune 2 elemente intre care exista o relatie exp: Echipa si
Managerul sau Un cont bancar isi cunoaste posesorul
3.- Agregare este o specializare a asocierii, specificând o relaţie de tip întreg-parte între 2
obiecte, partea şi întregul au difeirte durate de viaţă
iar partea poate exista si fara intreg. exp Gradina contine flori, sau ANGAJATOR intreg si
ANGAJAT parte
4.- Compozitie este o formă puternică de asociere în care întregul şi partea au aceeaşi durată
de viaţă , iar în general, întregul controlează durata de viaţă a
părţii si partea nu poate exista fara intreg. exp O floare este formata din petale (floare este
intregul iar petalele sunt partea)

5.- Dependenta O relaţie între două elemente ale modelului în care o schimbare în unul dintre
elemente poate cauza o schimbare în celălalt EXP":
clasa Client si clasa Furnizor intre ei este o relatie de dependenta
5. Derivare

22. Care e diferenta dintre protected si private?


Un membru declarat "private" este accesibil doar in clasa in care este declarat, pe cand un
membru declarat protected este accesibil oricarei clase care apartine
aceluias pachet ca si clasa in care este declarat membrul, de asemenea, este accesibil
si oricarei subclase a clasei respective

23.Ce inseamna portabilitatea in cazul limbajului Java


Java este un limbaj independent de platforma de lucru, aceeasi aplicatie ruland fara nici o
modificare pe sisteme diferite cum ar fi Windows, Unix , lucru
care aduce economii substantiale firmelor care dezvolta aplicatii pt internet.
Datorită platformei JVM (Java Virtual Machine), Java poate rula pe aproape orice tip de
sistem.
Java este, de asemenea, cel mai popular limbaj de Android, astfel că majoritatea aplicațiilor
Android este construită în Java.

24. Exemplificati diferenta dintre o variabila locala si o variabila de membru?


Variabilele de membru declarate in interiorul unei clase , viziblie pt toate metodele clasei
respective si pt alte clase in functie de modificatorul de acces.
Variabilele locale declarate intr-o metoda sau intr-un bloc de cod sunt vizibile doar in
metoda sau blocul respectiv

25. Faceti instantierea unui tablou de 10 elemente de tip Student.

public class Student {

String nume;
double medie;
public void tablou{
Student[] grupa1 = new Student[10];
for(int i = 0; i< grupa1.length; i++) {
grupa1[i] = new Student();
}
}
}

26. Aveti instructiunea:


int m[][] = new int [5][7]
Ce valori au : m.length; si m[i].lenght;
m.lenght = 5
m[i].length = 7

27. Avem instructiunea:


String sir = new String ("Java");
Afisati litera v din cuvantul Java; (cu o singura instructiune)
System.out.println(sir.charAt(2));

28. Ce face operatorul = pentru obiecte?


In cazul in care operatorul = este folosit impreuna cu date de tip referinta, are loc o atribuire
de valori.Atata doar ca valorile sunt in acest caz adrese.

29. Cate clase poate mosteni o clasa C si cate interfete poate mosteni aceeasi clasa C?
In Java nu este permisa mostenirea multipa, deci o clasa poate mosteni o singura clasa nu
mai multe
si atunci orice clasa are o superclasa si poate avea una sau mai multe subclase.
Aceeasi clasa C poate implementa mai multe interfete, sau nici una.

30. Explicati modificatorul final pt o variabila, metoda si clasa?


O clasa poate fi declarata final daca a fost complet definita si nus e doreste sa fie extinsa(sa
aiba subclase), practic ea nu poate sa apara in clauza exdens
a altei clase.
Pentru metode este folosit pt a specifica faptul ca aceea metoda nu mai poate fi
supradefinita in subclasele clasei in care ea este definita ca fiind finala.
Final este folosit pt declararea constantelor. O constanta este o variabila a carei valoare
nu mai poate fi schimbata.
Valoarea unei variabile finale nu trebuie specificata neaparat la declararea ei, ci poate fi
specificata ulterior, dupa care ea nu mai poate fi modificata.

31. Cand se aloca memorie pt un obiect( la declarare, instantiere)?


Instantierea clasei se realizeaza prin intermediul operatorului NEW si presupune alocarea
spatiului de momorie necesar pastrarii obiectului.

32. Dati 2 exemple de utilizare pt instructiunea break?


Este folosita pt parasirea fortata a corpurilor instructiunilor repetitive (for, while, do-while).
Daca instructiunea break este plasata in cadrul mai multor instructiuni repetitive
imbricate, ea are ca efect parasirea doar a instructiubii care o contine.

33. Exemplu de utilizare a instrctiunii super?


Cand sunt intr-un constructor in subclasa si vreau sa apelez un constructor din
superClasa.(eventual cu alti parametri)
Cand sunt intr-o metoda a unei subclase si vreau sa apelez orice metoda de pe
parinte(din superclasa).
În cazul în care super este folosită la apelul unui constructor sau al unei metode, ea
acţionează ca un cast către superclasa imediată.

34. Ce este o variabila si o metoda de clasa(exemplipicati)


Variabila de clasa este o variabila statica (si are modificatorul "static") si are o singură
valoare comună tuturor instanţelor clasei în care este declarată.
Modificarea valorii acestei variabile din interiorul unui obiect face ca modificarea să fie
vizibilă din celelalte obiecte.
Variabilele statice sunt iniţializate la încărcarea codului specific unei clase şi există chiar
şi dacă nu există nici o instanţă a clasei respective.
Din această cauză, ele pot fi folosite de metodele statice
-- Modificarea variabilei de clasa (statice) de catre cineva (gen o metoda
chiar si non-statica) implica faptul ca oricine altcineva va citi valoarea dupa
-- modificarea ei va vedea automat noua valoare.

O metoda de clasa este o metoda statica care poate fi accesata direct pe clasa. O
metoda de clasa (statica) nu poate apela direct (fara crearea unui obiect)
o metoda non-statica (chiar daca metoda non-statica face parte din aceeasi clasa)

variabila statica:
static int variabilaStatica = 5;

metoda statica
public static void main(String[] args)

35. Diferenta intre private si prtected la datele membru ale unei clase?
O variabilă protejată este accesibilă în orice clasă din pachetul căreia îi aparţine clasa în
care este declarată. În acelaşi timp, variabila
este accesibilă în toate subclasele clasei date, chiar dacă ele aparţin altor
pachete.
Cuvântul rezervat este protected
O variabilă privată este accesibilă doar în interiorul clasei în care a fost
declarată. Cuvântul rezervat este private.

36. Unde pot fi declarate metodele abstracte?

Metodele abstracte pot fi declarate doar in interiorul unei clase abstracte (adica si clasa si
metoda trebuie declarate ca si abstracte)

37. Cate fire de executie se lanseaza la un program standalone care nu instantiaza nici un fir de
executie?

Doar unul deoarece vine creat automat la lansarea programului

38. Ce eroare logica are codul?

public interface Ifata{


void metoda1();
void metoda2(){
System.out.println("Aceasta e metoda 1");
}
}

Eroarea este ca metoda2 contine implementare. Pt a corecta codul metoda2 va trebui sa fie
scris asa
solutia1 (stergerea implementarii) void metoda2();
solutia 2 (facem metoda2 sa fie metoda default in java 1.8)
default void metoda2(){
System.out.println("Aceasta e metoda 1");
}

39. Ce eroare logica are codul?

public class Clasa{


public void metoda1(){

System.out.println("Aceasta e metoda 1");


}
public static void metoda2(){
System.out.prinln("Aceasta e metoda 2");
this.metoda1();
}

}
Eroarea logica este ca in metoda2 (care este statica) se apleaza this.metoda1() care este o
metoda non-statica fara a avea un obiect pe care sa se apeleze.
Incercarea de a folosi "this" pt a apela metoda1 este incorecta pt ca nu se poate folosi
this pe metode statice.

S-ar putea să vă placă și