Cuprins
- 1. INTRODUCERE IN PROGRAMAREA ORIENTATA SPRE OBIECTE 3
- OBIECTE 3
- CLASE DE OBIECTE 6
- 2. RELATII DE ASOCIERE INTRE CLASE 9
- CARACTERISTICILE ABORDARII ORIENTATE PE OBIECTE 14
- 3. RELAŢIA DE GENERALIZARE/SPECIALIZARE ÎNTRE CLASE 16
- MOŞTENIREA ÎN JAVA 17
- 4. ARRAY-URI 23
- INIŢIALIZAREA UNUI ARRAY 23
- ARRAY-URI MULTIDIMENSIONALE 24
- LUCRUL CU ARRAY-URI 25
- ARRAY ÎN METODE 26
- 5. CLASE ABSTRACTE 28
- 6. INTERFETE 32
- 7. CLASE INTERNE 36
- DEFINIREA CLASELOR INTERNE 36
- CLASE INTERNE STATICE 38
- CLASE INTERNE ŞI MOŞTENIREA 38
- UTILIZAREA CLASELOR INTERNE ÎN APLICAŢII OO 39
- 8. INPUT/OUTPUT ÎN JAVA 42
- 9. GESTIUNEA EXCEPŢIILOR 55
- 10. COLECTII 62
- STRUCTURI DE DATE DINAMICE 62
- TIPOLOGII DE COLECŢII 62
- COLECŢII ÎN JAVA 76
- 11. APPLET 91
- 12. INTERFETE GRAFICE 99
- 13. GESTIUNEA EVENIMENTELOR 105
- 13.1 MODELUL GESTIUNII EVENIMENTELOR ÎN PROIECTAREA COMPONENTELOR GRAFICE 105
- 13.2 EVENIMENTE SEMANTICE 107
- 13.3 EVENIMENTE DE NIVEL COBORÂT 113
- 13.4 CLASE ADAPTER ALE INTERFEŢELOR DE ASCULTARE 118
- 14. PROGRAMAREA INTERFETELOR GRAFICE CU SWING 122
- FERESTRE INTERNE 124
- FERESTRE INTERNE 125
- CLASA JVIEWPORT 126
- JSCROLLPANE 127
- 15. BIBLIOGRAFIE 129
Extras din curs
1. INTRODUCERE IN PROGRAMAREA ORIENTATA SPRE OBIECTE
OBIECTE
D. Un obiect este un un mod simplificat de a identifica într-un program un lucru, o entitate din
lumea reală sau imaginată.
Din punctul de vedere al paradigmei pe obiecte, un obiecte este o combinatie de:
- informatii de structura, descrise de o multime de atribute ale obiectului, si
- functionalitate descrisa de o multime de operatii ce actioneaza asupra atributelor obiectului si
eventual, asupra altor obiecte.
D. Un atribut este o abstractizare a unei proprietati a unui obiect din lumea reala. Un atribut se
caracterizeaza prin: nume, tip, valoare si eventual constrangeri. De exp, magazinul Tomis, ca orice
magazin se caraterizeaza prin urmatoarele proprietati: denumire, numele proprietarului, ora de
deschidere si ora de inchidere. In plus, am putea avea si un numar de identificare care sa diferentieze
unic magazinul Tomis de orice alt magazin.
D. Valorile curente ale tuturor atributelor unui obiect formeaza starea obiectului. De exemplu, starea
magazinului Tomis ar putea fi urmatoarea:
numar de identificare= 10
denumire= Tomis
numele proprietarului= Ionescu Pop
ora de deschidere= 10
ora de inchidere= 18
Atributele unui obiect sunt descrise in momentul analizei si proiectarii programului OO folosind
limbajul UML si apoi sunt implementate cu ajutorul variabilelor intr-un limbaj de programare (in
particular, Java):
Nivelul specificarii (limbajul UML) Nivelul implementarii (limbajul Java)
- nrIdentificare: Integer = 10 {valoare unica
pentru fiecare obiect}
private int nrIdentificare;
- denumire: String private String denumire;
- numeProprietar: String private String numeProprietar;
- oraDeschidere: Integer = 9 private int oraDeschidere= 9;
- oraInchidere: Integer = 18 private int oraInchidere= 18;
D. O operatie este un algoritm privat al obiectului, adica se executa in mediul său si care opereaza
asupra valorilor atributelor sale sau ale altor obiecte pentru a furniza un serviciu unui alt obiect
numit client. Operatiile se deduc din responsabilitatile obiectului pe care trebuie sa le indeplineasca.
De exemplu, obiectul magazinul 10 trebuie sa furnizeze acces la ora de inchidere a magazinului,
adica sa furnizeze informatii de stare a obiectului, deoarece proprietarul magazinului vrea sa stie la
ce ora se inchide magazinul.
In plus, proprietarul magazinului (ca orice client al obiectului) poate sa modifice ora de inchidere a
magazinului, modificand astfel starea obiectului Magazin. Sau proprietarul ar vrea sa stie care este
intregul orar al magazinului.
Nivelul specificarii (limbajul UML) Nivelul implementarii (limbajul Java)
+ obtineOraInchidere(): Integer public int getOraInchidere(){
return oraInchidere;
}
+ modificaOraInchidere(nouaOra: Integer) public void setOraInchidere(int oraNoua){
oraInchidere=oraNoua;
}
4
Nivelul specificarii (limbajul UML) Nivelul implementarii (limbajul Java)
+ obtineOrar(): String public String getOrar(){
return oraDeschidere+”:00-”
+oraInchidere+”:00”;}
D. Implementarea unei operatii in limbajul Java se numeste metoda. O metoda se caracterizeaza prin
urmatoarele elemente:
- prototipul metodei = contine elementele de declarare a metodei
- semnatura metodei = combinatie intre numele metodei si tipul parametrilor in ordinea declararii
lor
- definitia metodei = corpul metodei ce contine instructiuni ce implementeaza algoritmul operatiei.
Elementele de structura si functionalitate ale unui obiect pot fi proiectate pentru a fi accesibile din
afara obiectului. Pana acum, orice client (inclusiv proprietarul) are acces la operatiile obiectului 10
deoarece operatiile respective sunt publice.
D. Totalitatea elementelor ce pot fi accesate din exteriorul obiectului formeaza interfata acestuia.
Rezulta ca starea unui obiect poate fi modificata numai prin intermediul interfetei lui.
Observatie. Desi obiectele se diferentiaza prin stare, aceasta din urma nu asigura identitatea
obiectelelor. Adica, puteam avea doua obiecte cu aceeasi stare, dar care sa fie diferite. In cazul
obiectului 10, identitatea acestuia este data de valoarea atributului numar de identificare. In acest
caz, spunem ca atributul (proprietatea) numar de identificare furnizeaza un criteriu de identitate
pentru obiectele de acelasi tip.
Principiul OO care sta la baza definirii interfetei unui obiect este cel al incapsularii informatiilor
(“information hiding”). Conform acestui principiu, trebuie sa ascundem in interiorul obiectului
(folosind modificatorul de acces private) toate elementele (atribute sau operatii) care nu sunt utile
altor obiecte (numite obiecte client: se afla in exteriorul obiectului si comunica cu el prin mesaje) si
sa lasam numai acele informatii in care clientii sunt interesati.
De exemplu, interfata obiectului 10 este formata din metodele publice fara sa dam acces direct la
variabilele instanta. In acest caz ele sunt variable private.
Un alt exemplu il constituie cazul in care proprietarul, ca orice client al obiectului 10, vrea sa stie
daca magazinul cu numarul de identificare 10 este deschis sau nu. Solutia este ca obiectul 10 sa aiba
o metoda publica care sa-i spuna proprietarului ca este deschis sau nu in functie de momentul
apelarii metodei esteDeschis():
Nivelul specificarii
(limbajul UML)
Nivelul implementarii (limbajul Java)
+ obtineRaspuns(): String public String getMesaj(){
if (esteDeschis()) return “Este deschis!”;
else return “Este inchis!”;
}
private boolean esteDeschis(){
Calendar c=Calendar.getInstance();
int oraCurenta=c.get(Calendar.HOUR_OF_DAY);
if (oraCurenta>=oraDeschidere &&
oraCurenta<=oraInchidere) return true;
return false;
}
CONCEPTE
Un obiect este o instanta (sau exemplificare) a unui concept.
Preview document
Conținut arhivă zip
- Programarea Orientata spre Obiecte - Limbajul Java.pdf