Curs POO

Curs
9.2/10 (5 voturi)
Conține 9 fișiere: pdf
Pagini : 123 în total
Cuvinte : 44749
Mărime: 697.11KB (arhivat)
Publicat de: Aurelian Alexa
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Constantin Ene
Este structurat in 10 capitole

Extras din curs

1. INTRODUCERE

1.1. Scurt istoric

Multá vreme C a fost limbajul preferat de programatori, ín special de cei care dezvoltau aplicaþii

pentru sistemele MS-DOS ßi WINDOWS. Ín ultima vreme ínsá, popularitatea limbajului C++ a

crescut datoritá faptului cá permite programarea orientatá pe obiecte (Object-Oriented

Programming) - o metodá de programare folositá ín prezent pentru realizarea multor aplicaþii

software.

Ideea programárii orientate pe obiecte (POO) a apárut ín anii ’60, fiind pusá ín practicá prin

intermediul limbajelor SIMULA (1967) ßi SMALLTALK (1975). Totußi, aceste limbaje au avut o

ráspändire relativ redusá, deoarece puþini programatori formaþi la ßcoala limbajelor clasice

procedurale din acea perioadá (FORTRAN, COBOL, PASCAL, MODULA-2, C etc.) erau dispußi

sá abandoneze aceste limbaje doar de dragul de a lucra obiectual. Cu toate acestea, ín anii ’80, ín

urma acceptárii definitive a limbajului C, un colectiv condus de Bjarne Stroustrup, un tänár

cercetátor de la Bell Lab’s, a avut ideea scrierii unui compilator care sá preia simplitatea ßi

flexibilitatea C-ului ßi mecanismele de "modelare“ ale limbajului SIMULA 67. Bjarne a numit acest

dialect “C with Classes“ ßi, prima versiune comercialá a acestuia a apárut la AT&T ín 1983, cu

denumirea modificatá ín cea actualá, C++ (sugeratá de Rik Masciti, un colaborator apropit a lui B.

Stroustrup). Denumirea de C++ semnificá de fapt multiplele facilitáti adáugate limbajului C.

Profitänd de multitudinea domeniilor de aplicaþie (de la grafica interactivá la proiectarea interfeþelor

utilizator ßi de la exploatarea reþelelor de calculatoare la tehnicile de proiectare a compilatoarelor),

printre programatori ín general ßi printre programatorii de C ín particular, aproape imediat apar

partizani ai POO-ului. De ce acest succes extraordinar ? Ín primul ränd, din cauza faptului cá

limbajul C++ nu face nimic altceva decät sa dea un nou avänt unuia dintre cele mai la modá limbaje

ale momentului (este vorba de C), iar ín al doilea ränd din cauza faptului cá aduce o ßi mai mare

economie de timp ín procesul de dezvoltare-implementare-testare a aplicaþiilor software. Ín cazul

limbajelor tradiþionale procedurale (3GL’s - 3rd Generation Languages), algoritmul materializat íntro

diagramá de flux a datelor (DFD - Data Flow Diagram), ajunge sá se adapteze arhitecturii

calculatorului. Generaþia a patra de limbaje (4GL’s), cum se obißnuießte a se denumi categoria

acestor limbaje orientate pe obiecte, urmáreßte adaptarea calculatorului la obiecte.

1.2. Avantajele POO

Avantajele POO reies din definirea principalelor concepte care stau la baza POO ßi anume:

abstractizarea datelor (data abstraction ), moßtenirea (inheritance ) ßi polimorfismul (polymorphism).

Abstractizarea datelor se referá la procesul de definire a tipurilor abstracte de date, ín timp ce

moßtenirea ßi polimorfismul se referá la mecanismele care permit programatorilor sá beneficieze de

caracteristicile comune ale tipurilor abstracte de date (obiectele din POO).

Abstractizarea datelor

Termenul tip abstract de date se referá la un tip de date definit de programator obþinut prin

íncapsularea (“contopirea“) datelor specifice aplicaþiei cu setul de operaþii (codul) care pot fi

efectuate asupra acestor date. Este numit abstract, pentru a-l diferenþia de tipurile de date de bazá

predefinite ín C, cum ar fi int, char, float ßi double. Deci, definirea unui tip abstract de date

(abstract data type - ADT) implicá specificarea reprezentárii interne a datelor din acel tip, precum ßi

a funcþiilor pe care alte module de program le vor utiliza pentru manipularea acelui tip abstract de

date. Ascunderea datelor, o facilitate a abstractizárii datelor, asigurá posibilitatea modificárii

structurii interne a unui tip abstract de date fárá a provoca funcþionarea defectuoasá a programelor

2

care apeleazá funcþiile ce opereazá asupra acelui tip abstract de date. Ín POO, un astfel de tip

abstract de date definit de utilizator, dar care se comportá la fel ca un tip predefinit, se numeßte

clasá (class ). O clasá poate fi consideratá ca un model (ßablon) din care pot fi create obiecte

specifice. Un obiect este o instanþiere a unei clase, deci o variabilá declaratá ca fiind de tipul clasá

respectiv.

Funcþiile care opereazá asupra unui obiect sunt denumite metode. Metodele definesc comportarea

unui obiect. Ín C++, metodele sunt denumite funcþii membre (member functions ) ale clasei.

Prin conceptul de íncapsulare a datelor ßi codului corespunzátor se ating ßi alte obiective:

posibilitatea de localizare a erorilor (íntotdeauna cauza se aflá ín “interiorul“ unei singure clase) ßi

modularizarea problemei de rezolvat (fiecare clasá va rezolva, de regulá, o singurá problemá).

Moßtenirea

Abstractizarea datelor nu acoperá o caracteristicá importantá a obiectelor ßi anume aceea cá

obiectele din lumea realá nu existá ín stare izolatá. Fiecare obiect este ín relaþie cu unul sau mai

multe obiecte. De multe ori un nou obiect poate fi descris evidenþiind modul ín care caracteristicile

ßi comportarea acestuia diferá faþá de cele ale unei clase de obiecte deja existente. Aceastá practicá

de a defini noi obiecte ín termeni ai unuia (unora) vechi este o parte integrantá a POO ßi se

defineßte prin conceptul de moßtenire . Prin mecanismul moßtenirii, ín urma definirii unei clase, cu

un minim de efort ßi timp, se pot preciza seturi de clase asemánátoare, avänd totußi o trásáturá

distinctivá. Moßtenirea impune o relaþie ierarhicá íntre clase, prin care o clasá derivatá (derived

class ) moßteneßte caracteristicile unei clase de bazá (base class ). Trebuie precizat cá, prin

mecanismul moßtenirii multiple, mai multe clase derivate pot moßteni o aceeaßi clasá de bazá ßi,

mai multe clase de bazá pot fi moßtenite de o aceeaßi clasá derivatá.

Polimorfismul

Ín sens literal, polimorfism ínseamná calitatea de a avea mai mult de o formá. Ín contextul POO,

polimorfismul ínseamná cá íntr-o ierarhie de clase obþinute prin moßtenire, o metodá poate avea

forme diferite de la un nivel la altul (specifice respectivului nivel de ierarhie) ßi poate funcþiona

diferit ín obiecte diferite. De exemplu, sá considerám operaþia de adunare. Pentru douá numere,

adunarea va genera suma lor. Íntr-un limbaj de programare care suportá POO, operaþia de adunare

poate fi exprimatá printr-un singur operator, semnul plus (+). Consideränd acest fapt, se poate

utiliza expresia x+y pentru a indica suma lui x ßi y pentru mai multe tipuri diferite de numere x ßi y

cum ar fi: íntregi, numere ín virgulá mobilá, numere complexe etc. Se poate chiar defini operaþia +

ca ínsemnänd concatenarea a douá ßiruri de caractere.

Preview document

Curs POO - Pagina 1
Curs POO - Pagina 2
Curs POO - Pagina 3
Curs POO - Pagina 4
Curs POO - Pagina 5
Curs POO - Pagina 6
Curs POO - Pagina 7
Curs POO - Pagina 8
Curs POO - Pagina 9
Curs POO - Pagina 10
Curs POO - Pagina 11
Curs POO - Pagina 12
Curs POO - Pagina 13
Curs POO - Pagina 14
Curs POO - Pagina 15
Curs POO - Pagina 16
Curs POO - Pagina 17
Curs POO - Pagina 18
Curs POO - Pagina 19
Curs POO - Pagina 20
Curs POO - Pagina 21
Curs POO - Pagina 22
Curs POO - Pagina 23
Curs POO - Pagina 24
Curs POO - Pagina 25
Curs POO - Pagina 26
Curs POO - Pagina 27
Curs POO - Pagina 28
Curs POO - Pagina 29
Curs POO - Pagina 30
Curs POO - Pagina 31
Curs POO - Pagina 32
Curs POO - Pagina 33
Curs POO - Pagina 34
Curs POO - Pagina 35
Curs POO - Pagina 36
Curs POO - Pagina 37
Curs POO - Pagina 38
Curs POO - Pagina 39
Curs POO - Pagina 40
Curs POO - Pagina 41
Curs POO - Pagina 42
Curs POO - Pagina 43
Curs POO - Pagina 44
Curs POO - Pagina 45
Curs POO - Pagina 46
Curs POO - Pagina 47
Curs POO - Pagina 48
Curs POO - Pagina 49
Curs POO - Pagina 50
Curs POO - Pagina 51
Curs POO - Pagina 52
Curs POO - Pagina 53
Curs POO - Pagina 54
Curs POO - Pagina 55
Curs POO - Pagina 56
Curs POO - Pagina 57
Curs POO - Pagina 58
Curs POO - Pagina 59
Curs POO - Pagina 60
Curs POO - Pagina 61
Curs POO - Pagina 62
Curs POO - Pagina 63
Curs POO - Pagina 64
Curs POO - Pagina 65
Curs POO - Pagina 66
Curs POO - Pagina 67
Curs POO - Pagina 68
Curs POO - Pagina 69
Curs POO - Pagina 70
Curs POO - Pagina 71
Curs POO - Pagina 72
Curs POO - Pagina 73
Curs POO - Pagina 74
Curs POO - Pagina 75
Curs POO - Pagina 76
Curs POO - Pagina 77
Curs POO - Pagina 78
Curs POO - Pagina 79
Curs POO - Pagina 80
Curs POO - Pagina 81
Curs POO - Pagina 82
Curs POO - Pagina 83
Curs POO - Pagina 84
Curs POO - Pagina 85
Curs POO - Pagina 86
Curs POO - Pagina 87
Curs POO - Pagina 88
Curs POO - Pagina 89
Curs POO - Pagina 90
Curs POO - Pagina 91
Curs POO - Pagina 92
Curs POO - Pagina 93
Curs POO - Pagina 94
Curs POO - Pagina 95
Curs POO - Pagina 96
Curs POO - Pagina 97
Curs POO - Pagina 98
Curs POO - Pagina 99
Curs POO - Pagina 100
Curs POO - Pagina 101
Curs POO - Pagina 102
Curs POO - Pagina 103
Curs POO - Pagina 104
Curs POO - Pagina 105
Curs POO - Pagina 106
Curs POO - Pagina 107
Curs POO - Pagina 108
Curs POO - Pagina 109
Curs POO - Pagina 110
Curs POO - Pagina 111
Curs POO - Pagina 112
Curs POO - Pagina 113
Curs POO - Pagina 114
Curs POO - Pagina 115
Curs POO - Pagina 116
Curs POO - Pagina 117
Curs POO - Pagina 118
Curs POO - Pagina 119
Curs POO - Pagina 120
Curs POO - Pagina 121
Curs POO - Pagina 122
Curs POO - Pagina 123

Conținut arhivă zip

  • Curs POO
    • Curs 01 & 02 .pdf
    • Curs 03.pdf
    • Curs 04.pdf
    • Curs 05.pdf
    • Curs 06.pdf
    • Curs 07.pdf
    • Curs 08.pdf
    • Curs 09.pdf
    • Curs 10.pdf

Alții au mai descărcat și

Activitatea unei Farmacii - Proiect UML

Activitatea unei farmacii 1) Specificarea cerinţelor Se doreşte dezvoltarea unui software interactiv care să cuprindă activitatea unei farmacii....

Aplicație a limbajului UML - album foto online

1. Descrierea proiectului Proiectul reprezintă o aplicaţie de administrare online a albumelor cu fotografii. Această aplicaţie oferă posibilitatea...

Reprezentarea activităților firmei cu ajutorul limbajului UML

 Limbajul UML UML nu este un simplu limbaj de modelare orientat pe obiecte, ci în prezent, este limbajul universal standard pentru dezvoltatorii...

Curs HTML

Internetul a fost descris ca „o colectie larga de retele“ sau ca o „retea de retele“. Desi ambele definitii sînt corecte, nici una nu surprinde...

Organizarea informației în fișiere

Organizarea externă a datelorîn fişiere 1. Fişierul şi articolul 2. Moduri de acces la articole 3. Metode de organizare a fişierelor -...

Sistem de gestiune a bazelor de date

Sistem de Gestiune a Bazelor de Date (SGBD) Este un ansamblu de programe speciale care realizeaza gestionarea si prelucrarea complexa a datelor,...

Supraîncărcarea operatorilor și funcțiilor

SUPRAÎNCĂRCAREA OPERATORILOR ŞI FUNCŢIILOR Supraîcărcarea funcţiilor independente şi a funcţiilor membre Aspecte generale şi restricţii pentru...

Abstractizarea Datelor. Clase și Obiecte

ABSTRACTIZAREA DATELOR. CLASE ŞI OBIECTE Concepte fundamentale Constructori şi destructori Pointrul this Pointeri la obiecte. Masive de...

Te-ar putea interesa și

Implementarea unei Interfețe Web pentru o Agenție de Turism

Introducere Lucrarea de faţă are ca şi scop realizarea unui site web pentru o agenţie de turism. Aplicaţia este realizată în ASP.NET, o platformă...

Algebră liniară numerică - aplicații ale POO în C++

~ Prefaţă ~ Programarea orientată pe obiecte este un concept întâlnit sub diverse denumiri, printre care: programare obiectuală, programare...

Limbajul C++

Limbajul C++ 1. INTRODUCERE Istoria limbajului C++ Limbajul C++ a fost creat prin extinderea limbajului C, ambele fiind limbaje de programare de...

Plăci de extensie

Argument In prima jumatate a secolului al XX-lea, nevoile de calcul ale comunitatii stiintifice erau satisfacute de calculatoare analoage, foarte...

POO

Un TDA este constituit atat din date cat si functii, interfata unui TDA fiind conferita de multimea de operatii care se pot efectua asupra datelor...

Programare pe Obiecte

S-a observat ca un obiect real este caracterizat de o structura, proprietati si de functionalitate. În POO obiectul este alcatuit dintr-o...

Curs C++

Limbajele C si C++ sunt limbaje de programare de nivel înalt. Limbajul C a aparut în anii 1970 si a fost creat de Dennis Ritchie în...

Proiectare orientată pe obiect

POO  CURS Nr. 1 DISCIPLINA: PROIECTAREA SISTEMELOR INFORMATICE ORIENTATA PE OBIECTE (POO): 2C/2L Obiective: 1. - Pregatirea studentilor in...

Ai nevoie de altceva?