Documente Academic
Documente Profesional
Documente Cultură
Modificatorii pot fi
1) un specificator de acces: public, protected, private;
2) unul din cuvintele rezervate :
▪ static – metoda este de clasă şi nu de instanţă.
De exemplu: void metodaInstanta(); static void metodaClasa();
▪ abstract – indică că o metodă este abstractă , nu are implementare şi obligatoriu face
parte dintr-o clasă abstractă. (tema Clase şi metode abstracte)
▪ final – indică că metoda nu mai poate fi supradefinită în subclasele clasei în care ea
este definită ca fiind finală. Se folosești atunci când nu dorim ca metoda să fie
modificată în subclasele clasei date;
▪ synchronized – este folosit în cazul în care se lucrează cu mai multe fire de execuție.
O metodă poate sau nu să returneze o valoare la finisarea execuției. Tipul returnat poate fi un
tip primitiv de date sau o referință la un obiect al unei clase. Atunci când o metodă nu returnează
nimic trebuie obligatoriu de specificat cuvântul cheie ,,void’’ ca fiind tipul returnat de aceasta.
musteata.victoria@ceiti.md 5 ©Musteață Victoria
Modulul: Programarea Orientată spre Obiecte CEITI
De exemplu:
public void afisare(){System.out.println(“Rezultat “);}
Dacă o metodă trebuie să returneze o valoare, la terminarea funcției trebuie să apară obligatoriu
instrucțiunea return urmată de rezultat compatibil cu tipul metodei.
De exemplu:
int metoda(){ return 1; // corect }
int metoda(){ return 1.5; //eroare}
int metoda(){ return (int)1.5; }
Dacă valoarea returnată este o referință la un obiect al unei clase atunci clasa obiectului returnat
trebuie să coincidă sau să fie o subclasă a clasei specificate la declararea metodei.
De exemplu, fie clasa Poligon şi subclasa ei Patrat:
a) Poligon metoda1(){ b) Patrat metoda2(){
Poligon p=new Poligon(); Poligon p=new Poligon();
Patrat t=new Patrat(); Patrat t=new Patrat();
if (...) return p; else t; } if (...) return p;//ilegal
else t; }
Lista de argumente este opţională la declararea metodei, dar dacă aceasta este atunci va avea
forma:
<tipVariabila1> <Variabila1> , ... , <tipVariabilaN> <VariabilaN>
variabila1,...,variabilaN reprezintă parametri formali.
Parametri formali sunt acei parametri care apar la definirea metodei. La apelarea metodei sunt
parametri actuali, iar valorile acestora se transmite parametrilor formali.
Nu este posibil ca 2 parametri formali să conțină același nume.
2.3.2 Obiecte
Dicționarele explicative ale limbii române definesc termenul ,,obiect’’ în felul următor:
✓ corp solid
✓ lucru
✓ disciplină de studiu
Aceste definiții cuprind diferite domenii ce țin de natură şi activitatea omului. Ele pot fi
transformate în concepte virtuale fiind modelate de POO prin declarări de clase şi crearea
obiectelor clasei respective.
Obiectul în programare este un modul de program ce îndeplinește următoarele cerințe
principale:
- întrunește date și are comportament;
- posedă proprietăți de moștenire, încapsulare şi polimorfism.
Obiectele sunt construite pe baza unor șabloane numite clase respectând sintaxa:
Denumire_clasă denumire_obiect = new Denumire_clasă();
Odată creat obiectul poate fi folosit pentru a: afla informații despre obiect, schimba starea
obiectului, executa unele acțiuni.
Deci procesul prin care creăm obiecte pentru o clasă, de fapt în POO poartă denumirea de
instanțierea unei clase și implică următoarele:
1) declarare : numeClasa numeObiect;
De exemplu: Elev elev1;
2) instanţiere – se realizează cu operatorul new() şi are ca efect crearea obiectului cu
alocarea spaţiului de memorie corespunzător: numeObiect = new numeClasa();
De exemplu: elev1 = new Elev();
3) iniţializare – se realizează prin intermediul constructorilor clasei respective, are loc de
fapt împreună cu instanţierea, urmează imediat după operatorul new.
Parantezele rotunde de după identificatorul numeClasa(); indică că acolo este de fapt
un apel la unul din constructorii clasei. Deci instanţierea şi iniţializarea au forma:
numeObiect = new numeClasa([argumente_constructor]);
De exemplu: elev1 = new Elev(“Ion”,20);
Analizează și discută!
1. Definiți clasa Client care are trei variabile de instanță: nume, adresa și email. Adăugați clasei
o metodă cu parametri care va inițializa variabilele de instanță și o metodă fără parametri
care va afișa informația despre detaliile clientului.
2. În metoda main(), se creează o instanță a clasei Client, se afișează informațiile despre client,
se actualizează adresa și se afișează informațiile actualizate.
3. Definiți clasa Dreptunghi care descrie suprafețe grafice definite de coordonatele colțul
stânga sus, lățimea respectiv înălțimea dreptunghiului. Definiți o clasă Test pentru clasa
Dreptunghi în care instanţiați această clasă.
Evaluează-te!
Știați că...
1. Sunt peste 10 milioane de programatori Java în lume – mai mult decât populația New York-ului!
2. Inițial programul s-a numit Oak, având ca inspirație stejarul din fața biroului lui James Gosling de la Sun
Microsystems.
3. Java este downloadat de 1 miliard de ori pe an!
4. Ziua de naștere a limbajului Java este 23 mai 1995. Anume atunci a avut loc lansarea oficială a Java 1.0.
5. Indicele TIOBE, care măsoară popularitatea limbajelor de programare, clasează în mod constant Java
printre cele mai importante limbaje de programare.
Surse:
1. Emanuela Cerchez, Marinel Șerban, Programarea în limbajul C/C++ pentru liceu,
Programarea Orientată spre Obiecte și programarea generică cu STL, Polirom, 2013, pag.
12
Succes!