Documente Academic
Documente Profesional
Documente Cultură
- 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(){
public C(){
}
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.
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 )
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.
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
String nume;
double medie;
public void tablou{
Student[] grupa1 = new Student[10];
for(int i = 0; i< grupa1.length; i++) {
grupa1[i] = new Student();
}
}
}
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.
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.
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?
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");
}
}
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.