Documente Academic
Documente Profesional
Documente Cultură
obiecte
Limbajul Java
Introducere (1)
Examen:
Prima prezentare: sesiunea de iarn
Prez. 2 i 3: pe parcursul sem. II
Bibliografie:
I. Jurca: Programarea orientat pe obiecte. Limbajul Java, Ed. de Vest, 2005
K. Arnold, J. Gosling, D. Holmes: The Java Programming Language, 4th edition,
Addison Wesley, 2005
C. Marinescu, P. Mihancea:Programare orientata pe obiecte in limbajul Java, Ed.
Politehnica, 2006
Y. Daniel Liang: Introduction to Java Programming, 8 th edition, Prentice Hall, 2010
Pagina disciplinei: http://loose.upt.ro/~oose/pmwiki.php/OOP
Reguli:
Examenul nu se susine i nu se recunoate pe pri
Laboratorul se pregtete de acas
Plagiatul (la laborator sau la examen) se pedepsete
Introducere (2)
Coninutul cursului:
Introducere
Clase i obiecte
Motenire i polimorfism
Interfee
Clase i interfee ncuibate
Excepii i aseriuni
Pachete
Operaii de intrare/ieire
Colecii
Programare concurent n Java
Interfee grafice (GUI)
Introducere (3)
Modelare i programare
Paradigme de programare
Caracteristicile orientrii pe obiecte
Elemente ale UML
Ciclul de via al software-ului
Maini virtuale, cod virtual
Limbaje orientate pe obiecte
Modelare i programare
Model: expresie a nelegerii unui fenomen, proces, situaii la
un moment dat
Modelele au dou roluri: explicativ i predictiv
Modele: conceptuale (abstracte) sau fizice
Modelul nu se confund cu realitatea
Calculatorul: model fizic bazat pe un model conceptual pentru
calcul
Model de calcul concret =algoritm ==> program
Exist mai multe modele generice de calcul =>mai multe
arhitecturi de calculatoare
Exist mai muli algoritmi pentru o problem
Exist distan conceptual ntre domeniile de aplicaii i
limbajele de programare
Paradigme de programare
Paradigme de programare
Programarea structurat
Identitatea obiectelor
Fiecare obiect este distinct i identificabil separat pe toat durata existenei, prin
referin
Referina poate fi nscris n mai multe locaii
Colectarea reziduurilor (cnd un obiect nu mai are referina n nici o locaie)
Clase (i obiecte)
Elemente UML
Motenire simpl i multipl:
Elemente UML
Elemente UML
Colaborare:
Secven
Smalltalk
C++
Creat de Bjarne Stroustrup, cca 1983-1985, ca un C mai bun
Permite motenire multipl cu precizarea funciilor care pot fi nlocuite n
subclase
Obiectele se pot crea fie prin declararea unor variabile, fie prin constructori
Nu are colectare a reziduurilor, clasele au destructori
Operatorii pot fi suprancrcai
Controlul accesului: private, protected, public
Nu are o ierarhie de clase standard
Concepte mai recente: spaii de nume, tipare pentru genericitate
Are bibliotec standard de tipare (STL)
Este un limbaj complex, nu este pur obiectual
Compilatoarele genereaz cod executabil, foarte eficient la execuie
Toate firmele mari de software ofer suport pentru C++
Eiffel
Creat de Bertrand Meyer n 1985
Denumirea sugereaz proiect terminat la timp, cu costul prevzut, cu un
numr mic de tipare constructive robuste combinate pentru a obine
structuri complexe
Permite motenire multipl
Proiectarea prin contract: software-ul este construit pe baza unui
contract ntre clieni (apelani) i furnizori (rutine), cu obligaii i beneficii
explicitate prin aseriuni (precondiii, postcondiii i invariani)
Are mecanism pentru tratarea excepiilor i parametri formali generici
pentru clase
Suport oferit de creator printr-o firm proprie, dar exist i colaborri cu
firmele mari (Microsoft, SUN) pentru a include Eiffel n platformele
acestora
Java
C#
Introdus n 2000 ca parte a platformei .NET (Microsoft) de A. Hejlsberg i
S. Wiltamuth
.NET permite integrarea limbajelor de programare, astfel ca programe
scrise n diverse limbaje s poat colabora fr dificulti
Are multe elemente comune cu Java: clase cu motenire simpl, interfee,
programare concurent
Are colectare automat a reziduurilor, dar permite i definirea de
destructori, neapelabili direct
Are i caracteristici comune cu C++: suprancrcarea operatorilor, pointeri
Delegai: referine spre funcii, utilizai n programarea interactiv pentru
tratarea evenimentelor (similar cu clase interne n Java)
Suport de dezvoltare oferit de Microsoft, dar exist i variante gratuite