Programare pe Obiecte

Imagine preview
(9/10 din 4 voturi)

Acest curs prezinta Programare pe Obiecte.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 11 fisiere doc de 46 de pagini (in total).

Profesor: David Dumitru

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca.

Fratele cel mare te iubeste, acest download este gratuit. Yupyy!

Domeniu: Calculatoare

Extras din document

S-a observat ca un obiect real este caracterizat de o structura, proprietati si de functionalitate.

În POO obiectul este alcatuit dintr-o structura de date împreuna cu prelucrarile si metodele ce actioneaza asupra datelor. Obiectul încapsuleaza datele conform principiului fundamental al încapsularii, adica accesul la date se face numai prin setul de metode asociat obiectului. Implementarea este transparenta fata de utilizator. Daca modificam structura datelor membre poate aparea modificarea metodelor. Daca este pastrata specificatia metodelor nu afecteaza utilizarea obiectului.

Consecinte:

- limitarea dependentelor la scrierea programelor în colective diferite

- întretinerea programelor pentru versiuni noi este mai usoara si mai sigura

- posibilitatea realizarii clasei

- este folosita abstractizarea si ierarhizarea pentru a reda complexitatea lumii reale. Pot fi construite ierarhii de obiecte prin adaugarea de calitati suplimentare

Concepte în POO

- Clasa – este o generalizare a tipului de date cunoscut.

- Polimorfismul – este posibilitatea ca o functie sa opereze cu diverse variante specifice pentru obiecte diferite, având o aceeasi interfata

- Mostenirea – sta la baza modelarii si ierarhizarii. O clasa derivata mosteneste proprietatile clasei de baza la care adauga noi proprietati. Mecanismul este derivarea.

- Mostenirea multipla – O clasa mosteneste 2 clase si alte proprietati. Prin mostenire o solutie ce exista poate fi preluata si utilizata pentru o aplicatie noua. Rezulta ierarhii de aplicatii si clase.

2. Limbaje orientate pe obiecte

Au aparut la sfârsitul anilor ’60: Simula, Smalltalk, Eiffel. Altele si-au adaugat componente specifice POO (C si Pascal)

Simula I încorporeaza pentru prima data datele si metodele în aceeasi unitate. Simula II (1973) introduce concepte clare de clasa si obiecte.

Trasaturi ale C++

- calitatile C : flexibil si eficient

- are în plus POO care nu este impusa strict

- ameliorari

3. Incompatibilitati în C si C++

La C++ apar noi cuvinte rezervate: catch, class, delete, friend, inline, new, operator, private, protected, public, template, this, virtual

4. Clase. Elemente de baza

O clasa este o metoda de organizare a datelor si a functiilor în aceeasi structura. Definirea se face cu cuvântul cheie class.

Forma generala:

Class nume_clasa {

………

permisia1:

… membrii…

permisia2:

… membrii…

} [nob];

unde nume_clasa reprezinta numele dat de utilizator clasei respective; permisia este un specificator de acces la membrii clasei; membrii sunt date si functii ce fac parte din clasa respectiva, iar nob sunt instantieri ale clasei respective.

Specificatorii de acces la membrii clasei pot fi:

- private – care este implicit. Toti membrii ce urmeaza sunt de tip private si sunt accesibili doar membrilor clasei sau al unei clase prietene

- protected – membrii cu acest atribut sunt accesibili membrilor clasei, de cei ai clasei prietene si de cei ai clasei derivate

- public – membrii cu acest atribut sunt accesibili în orice punct unde este vizibila clasa, si reprezinta interfata clasei cu restul programului

Exemplu:

CDrept{

int x,y;

public:

void set_val(int,int);

int area(void);

} rect;

Este clasa dreptunghiurilor ce au un colt în origine si celalalt în (x,y). (x,y) nu pot fi modificati din afara însa se poate folosi functia set_val si area.

O clasa trebuie instantiata, si acest lucru se face astfel:

Cdrept drept1, drept2;

Drept1 si drept2 sunt obiecte de tip Cdrept.

O metoda a clasei se apeleaza astfel:

nume_ob.nume_metoda()

În cazul nostru apelarea metodei set_val() se face astfel:

drept1.set_val(6,7);

Definirea unei functii membre, la noi set_val():

void CDrept::set_val(int a, int b)

{x=a; y=b;}

int Cdrept::area(void)

{return (x*y);}

Iar programul principal:

void main()

{

drept1.set_val(6,7);

cout<<”Suprafata dreptunghiului=”<<drept1.area()<<endl;

getch();

}

Operatorul de rezolutie (::) este folosit pentru a defini o functie membru în afara clasei. Daca o functie nu este declarata în afara clasei ci în interiorul ei, functia se numeste functie inline.

Noi nu avem un constructor si un destructor în exemplu. Datele si functiile se numesc proprietatile obiectelor.

Fisiere in arhiva (11):

  • Curs 1 (POO An 2) .doc
  • Curs 10 (POO An 2) .doc
  • Curs 11 (POO An 2) .doc
  • Curs 2 (POO An 2) .doc
  • Curs 3 (POO An 2) .doc
  • Curs 4 (POO An 2) .doc
  • Curs 5 (POO An 2) .doc
  • Curs 6 (POO An 2) .doc
  • Curs 7 (POO An 2) .doc
  • Curs 8 (POO An 2) .doc
  • Curs 9 (POO An 2) .doc

Alte informatii

Univ din Pitesti anII