Sunteți pe pagina 1din 6
Introducere în Programarea Orientată Obiect (POO) Mihai Gabroveanu
Introducere în
Programarea Orientată
Obiect (POO)
Mihai Gabroveanu
Introducere în Programarea Orientată Obiect (POO) Mihai Gabroveanu
 

Bibliografie

 

n

Bjarne Stroustrup: The C++ Programming Language, Adisson-Wesley, 3nd edition, 1997

n Bjarne Stroustrup: The C++ Programming Language, Adisson-Wesley, 3nd edition, 1997

n

M. Preda, A. Mirea, D. Preda, C.Teodorescu. Introducere in programarea orientata-obiect. Concepte fundamentale din perspectiva ingineriei software, Editura Polirom. 2010

in programarea orientata-obiect. Concepte fundamentale din perspectiva ingineriei software, Editura Polirom. 2010
 
 

Introducere în Programarea Orientată Obiect

10

Introducere în Programarea Orientat ă Obiect 1 0 Bibliografie     Detalii Organizatorice
Introducere în Programarea Orientat ă Obiect 1 0 Bibliografie     Detalii Organizatorice

Bibliografie

   

Detalii Organizatorice

 

n

Liviu Negrescu, Limbajele C și C++ pentru începatori , Vol. II, (editia XI),Editura Albastra, Cluj-Napoca, 2005

Limbajele C ș i C++ pentru începatori , Vol. II, (editia XI),Editura Albastra, Cluj-Napoca, 2005  
 

n

Curs

¨

Prezentarea teoriei generale a Programării Orientate Obiect

 

n

Laborator

 
 

¨ Implementări practice ale teoriei prezentate la curs în C++

 

¨ Mediul de dezvoltare: Visual Studio 2005, DevC++

 

¨ Prezența este obligatorie

n Evaluare  

n

Evaluare

 

n

Bruce Eckel, „Thinking in C++, 2nd Edition”, Prentice Hall 2000

¨ nota de laborator

= NL

 

n

Doua lucrari

n

Teme

   

¨ examen scris

= NE

¨ nota finală: (NL+NE)/2

 
 

Introducere în Programarea Orientată Obiect

9

 

Introducere în Programarea Orientată Obiect

11

Ce este Programarea Orientat ă Obiect?   Abstractizarea   n Programarea Orientat ă Obiect (POO)
Ce este Programarea Orientat ă Obiect?   Abstractizarea   n Programarea Orientat ă Obiect (POO)

Ce este Programarea Orientată Obiect?

 

Abstractizarea

 

n

Programarea Orientată Obiect (POO) este o metodă de proiectare și implementare în care programele sunt reprezentate sub forma unor colecții de obiecte care interacționează între ele prin intermediul mesajelor.

n

Abstractizarea este procesul de grupare a datelor şi metodelor de prelucrare specifice rezolvării unei probleme.

n

Limbaje de programare orientate obiect:

n

Abstracţiunea:

¨

C++

¨ exprimă toate caracteristicile esenţiale ale unui obiect care fac ca acesta să se distingă de alte obiecte;

¨

C#

¨

Java

   

¨

 

¨ oferă o definire precisă a graniţelor conceptuale ale obiectelor din perspectiva unui privitor extern.

 

Introducere în Programarea Orientată Obiect

12

Introducere în Programarea Orientată Obiect

14

Introducere în Programarea Orientat ă Obiect 1 4 Concepte de baz ă în POO   Abstractizarea
Introducere în Programarea Orientat ă Obiect 1 4 Concepte de baz ă în POO   Abstractizarea

Concepte de bază în POO

 

Abstractizarea - Exemplu

 

n Principalele concepte care stau la baza POO sunt:

¨ Abstractizarea

n

Tipul abstract de date "Student"

typedef struct { char nume[50]; char facultatea[30]; int anStudii; } Student;

 
 

¨ Încapsularea

¨ Modularitatea

¨ Ierarhizarea

n

Instanţierea tipului abstract "Student" Student s={"Popescu Emil”,"Informatica",1};

 

Introducere în Programarea Orientată Obiect

13

Introducere în Programarea Orientată Obiect

15

ÎNCAPSULAREA   IERARHIZAREA   n Combinarea datelor ş i metodelor într-o singur ă structur ă
ÎNCAPSULAREA   IERARHIZAREA   n Combinarea datelor ş i metodelor într-o singur ă structur ă

ÎNCAPSULAREA

 

IERARHIZAREA

 

n

Combinarea datelor şi metodelor într-o singură structură de date, definind totodată modul în care obiectul şi restul programului pot referi datele din obiect.

Concept care defineşte apartenenţa unor proprietăţi şi metode faţă de un obiect.

n

Reprezintă o ordonare a abstracţiunilor.

n

Principalele tipuri sunt:

n

¨ Moştenirea (ierarhia de clase) relaţie între clase în care o clasă împărtăşeşte structura şi comportarea definită în una sau mai multe clase (semantic implică o relaţie de tip “is a”). ¨ Agregarea (ierarhia de obiecte) relaţie între două obiecte în care unul dintre obiecte aparţine celuilalt obiect. (semantic implică o relaţie de tip “part of”)

n

Constă în separarea aspectelor externe ale unui obiect care sunt accesibile altor obiecte de aspectele interne ale obiectului care sunt ascunse celorlalter obiecte

Introducere în Programarea Orientată Obiect

16

 

Introducere în Programarea Orientată Obiect

18

Introducere în Programarea Orientat ă Obiect 1 8 MODULARITATEA   Obiecte   n Modalitate de a
Introducere în Programarea Orientat ă Obiect 1 8 MODULARITATEA   Obiecte   n Modalitate de a

MODULARITATEA

 

Obiecte

 

n Modalitate de a grupa abstracţiuni legate logic între ele.

n

Un obiect este o reprezentare a unei entități din lumea reală asupra căruia se poate întreprinde o acţiune sau care poate întreprine o acţiune

n

Un obiect este caracterizat de

 

n

nume

n

atribute (date)

 

¨ valorile atributelor la un moment dat definesc o stare

 

n

metode (servicii, operatii)

 

Introducere în Programarea Orientată Obiect

17

 

Introducere în Programarea Orientată Obiect

19

Clasa   Tipuri de date abstracte si obiecte   n O clas ă este o
Clasa   Tipuri de date abstracte si obiecte   n O clas ă este o

Clasa

 

Tipuri de date abstracte si obiecte

 

n

O clasă este o colecție de obiecte cu aceiași structură (caracteristici) și același comportament (metode sau operatii)

n A doua definitie pentru obiecte si clase:

   

¨ O clasa este o implementare a unui tip de date abstract.

 

Obiecte - Bicilete

Clasa Biciletă

 
- atribute tip cadru dimensiunea rotii numar de viteze - metode acelereza franeaza   Ea

- atribute tip cadru dimensiunea rotii numar de viteze

- metode acelereza franeaza

 

Ea defineste atribute si metode care implementeaza structura de date respectiv operatiile tipului de date abstract.

¨ Un obiect este o instanta a unei clase. El este unic determinat de numele sau si defineste o stare reprezentata de valorile atributelor sale la un anumit moment particular.

Introducere în Programarea Orientată Obiect

20

Introducere în Programarea Orientată Obiect

22

Introducere în Programarea Orientat ă Obiect 2 2 Identificarea atributelor ș i metodelor   Sintaxa
Introducere în Programarea Orientat ă Obiect 2 2 Identificarea atributelor ș i metodelor   Sintaxa

Identificarea atributelor și metodelor

 

Sintaxa definirii unei clase

 

n

În cadrul unei banci un cont bancar are un titular, sold, o rata a dobinzii, numar de cont și se pot efectua operatii de depunere, extragere, actualizare sold.

n

Definirea unei clase constă din două părţi distincte:

¨ declararea clasei

¨ implementarea clasei respective

n

Sintaxa

n

Extragerea atributelor:

class IdNumeClasa{ declaratii de date membru; declaratii/definiții de functii membru;

 

n

titular, sold, rata a dobinzii, numar de cont

 

n

Extragerea metodelor

n

depunere, extragere, actualizare sold

 

};

Introducere în Programarea Orientată Obiect

21

Introducere în Programarea Orientată Obiect

23

Protec ț ia datelor ș i func ț iilor membre Exemplu Declararea clasei ContBancar class
Protec ț ia datelor ș i func ț iilor membre Exemplu Declararea clasei ContBancar class

Protecția datelor și funcțiilor membre

Exemplu

Declararea clasei ContBancar

class ContBancar{

n Funcţiile şi datele unei clase pot fi grupate din punct de vedere al dreptului de acces în:

¨ private – conţine date şi funcţii membre care pot fi folosite doar de către celelalte funcţii aparţinând clasei respective;

 

private:

char titular[100];

char codIBAN[25];

float sold;

public:

¨ protected – similara cu private dar care dădrepturi de acces şi funcţiilor membre ale claselor derivate din clasa respectivă

void init(char _titular[], char _codIBAN[], float _sold);

void depune(float suma);

void retrage(float suma);

¨ public – drept de acces tuturor.

float getSold();

void afis();

};

Introducere în Programarea Orientată Obiect

24

Introducere în Programarea Orientată Obiect

26

Introducere în Programarea Orientat ă Obiect 2 6 Delararea/definirea unei metode Exemplu Implementarea
Introducere în Programarea Orientat ă Obiect 2 6 Delararea/definirea unei metode Exemplu Implementarea

Delararea/definirea unei metode

Exemplu

Implementarea clasei ContBancar

Declarare

void ContBancar::init(char _titular[], char _codIBAN[], float _sold){

strcpy(titular,_titular);

class IdNumeClasa{ tip idNumeMetoda(tip1 p1, …, tip pn);

strcpy(codIBAN,_codIBAN);

sold = _sold;

};

}

Definire

tip IdNumeClasa:: tip idNumeMetoda(tip1 p1, …, tip pn){ //instructiuni

 

void ContBancar::depune(float suma){

sold = sold + suma;

}

}

void ContBancar::retrage(float suma){

sold = sold - suma;

}

Introducere în Programarea Orientată Obiect

25

Introducere în Programarea Orientată Obiect

27

Exemplu Referirea la datele si metodele membru   Implementarea clasei ContBancar float ContBancar::getSold(){
Exemplu Referirea la datele si metodele membru   Implementarea clasei ContBancar float ContBancar::getSold(){

Exemplu

Referirea la datele si metodele membru

 

Implementarea clasei ContBancar

float ContBancar::getSold(){

 

idOb.idDataMembru idPointerOb ->idDataMembru

 

return sold;

}

void ContBancar::afis(){

   
 

printf("Titular: %s\n", titular);

idOb.idMetodaMembru(lista de parametri); idPointerOb ->idMetodaMembru(lista de parametri);

printf("Cod IBAN: %s\n", codIBAN);

printf("Sold: %g\n", sold);

}

 
 

Introducere în Programarea Orientată Obiect

28

Introducere în Programarea Orientată Obiect

30

8 Introducere în Programarea Orientat ă Obiect 3 0 Sintaxa declararii unui obiect   Exemplu  
8 Introducere în Programarea Orientat ă Obiect 3 0 Sintaxa declararii unui obiect   Exemplu  

Sintaxa declararii unui obiect

 

Exemplu

 

int main(){

IdNumeClasa{ // …. } idOb1, …, idObN;

 

ContBancar c;

c.init("Popescu", "RO49RNCB0080005630320001", 100);

c.afis();

printf("Depun 10 RON\n");

 

c.depune(10);

sau

c.afis();

printf("Extrag 15 RON\n");

c.depune(10);

IdNumeClasa idOb1, …, idObN;

 

c.afis();

}

 

Introducere în Programarea Orientată Obiect

29

Introducere în Programarea Orientată Obiect

31