Programarea Orientată Obiect (POO)

Slides:



Advertisements
Similar presentations
SoSBlog Novac Lucian Doncilă Sergiu Rusu Andrei Rusu Alexandru Ţuţurman Andreea Tofan Radu Grupa 1B - subgrupa 3:
Advertisements

 Ce e bravenet.COM ?  De ce bravenet.COM ?  Avantaje si dezavantaje in folosirea bravenet.COm Grupa 6: Lucian-Eduard Barticel Eduard Giurgiu Iany Ionut.
În general exist ă 2 forme mari de conservare : “in situ” şi “ex situ” 1. Conservarea “ in situ” Aceast ă metod ă de conservare const ă în.
Litigii privind numele de domenii.ro Moduri de rezolvare a litigiilor Bogdan Manolea.
Batalia sexelor O lume dominata de barbati vs o lume dominata de femei.
1 const #define DIMENSIUNE 1000 const int DIMENSIUNE = 1000; Utilizarea valorilor constante este importantă, de exemplu, în declararea tablourilor de date.
-Modelul Entitate-Legatura (ER)-
Subinterogări multiple
Oracle Academy Lead Adjunct
Prof. Elena Răducanu, Colegiul Naţional Bănăţean,Timişoara
CUPRINS Tastatura Imprimanta Scanner Bibliografie Recapitulare.
Funcţii Excel definite de utilizator (FDU) în VBA
Instrumente CASE Curs nr. 7.
Posibilităţi de analiză în timp real a parametrilor de calitate a apei cu ajutorul sistemului informatic de management SIVECO Business Analyzer September.
Castiga cel care etaleaza primul toate cartile!
SOFTWARE Tipuri de software.
Dispozitive de stocare
CREATE, DROP,ALTER INSERT, UPDATE, DELETE
Long history of skin transplants: mostly unsuccessful
Arhitectura serviciilor web
Structura pipeline a unui procesor MIPS
Paxos Made Simple Autor: Puşcaş Radu George
Date Semistructurate, C12. Oracle / OR (2) Date Semistructurate,
REZOLVAREA RELAŢIILOR MANY TO MANY
Reflexia luminii.
METODA BACKTRACKING Examenul de bacalaureat 2012
Programare vizuală.
CONVERSII INTRE SISTEME DE NUMERATIE
-Limbajul SQL-Interogări complexe. Subinterogări-
Problema rucsacului lacom
MANAGEMENT EDUCAŢIONAL PERFORMANT Limbajul de programare Borland Pacal
Tipuri structurate Tipul tablou
Programarea calculatoarelor şi limbaje de programare I Capitolul 8
C# şi platforma .NET.
Programarea calculatoarelor şi limbaje de programare II Capitolul 3
Curs 2 1 Sistem de operare-concepte: 2 Apeluri de sistem
Modificarea structurii unei tabele
Curs 6: Introducere în programarea SAS
Unified Modeling Language (UML) Modelare comportamentală
Funcții C/C++ continuare
Sintaxa şi semantica C++
Impulsul mecanic Impulsul mecanic. Teorema conservarii impulsului mecanic.
Citește-mă Acest slide are rolul de a-ți explica modul în care să folosești umătoarele slide-uri. Șterge-l din prezentarea finală. În următoarele slide-uri.
AUTOMOBILUL ELECTRIC UNIVERSITATEA POLITEHNICA
INTERNET SERVICII INTERNET.
SOAP Simple Object Access Protocol
PRELUCRARI SPECIFICE TABLOURILOR BIDIMENSIONALE
Forms (Formulare).
Universitatea POLITEHNICA din București - Curs de 16 ore – Curs 11
Îmbunătăţirea serviciilor publice prin intermediul Chartelor de Servicii: Elaborarea şi implementarea Planurilor de Acţiune pentru Îmbunătăţirea Serviciilor.
SUBSTANTE PURE SI AMESTECURI DE SUBSTANTE
Functia de documentare
Căutarea şi regăsirea informaţiei
Ingineria Programării
SOAP -Simple Object Access Protocol-
Din punct de vedere structural:
Programarea in limbajul Java 2004 Lecturer: Gavrila Cristian
Unitatea centrală de prelucrare
Realizarea prezentarilor cu Microsoft PowerPoint
ACTIUNEA Programe de Acces Comunitar
Aplicaţii specializate pentru realizarea unei prezentări – PowerPoint
Refracţia luminii.
Configurarea metodelor de management al calităţii în sectorul public
C7 – LPO: Clase si Obiecte
Implementarea listelor simplu inlantuite
Harti de imagini, Cadre, Stiluri
„Limba noastră-i o comoară...” (?)
Tabele WEB.
ALGORITMI ŞI SCHEME LOGICE
Administrare Oracle 9i Suport de curs
Presentation transcript:

Programarea Orientată Obiect (POO) 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.

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

ÎNCAPSULAREA 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. Constă în separarea aspectelor externe ale unui obiect care sunt accesibile altor obiecte de aspectele interne ale obiectului care sunt ascunse celorlalte obiecte

IERARHIZAREA Reprezintă o ordonare a abstracţiunilor. Principalele tipuri sunt: 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”)

Obiecte Un obiect este o reprezentare a unei entități din lumea reală asupra căruia se poate întreprinde o acţiune sau care poate întreprinde o acţiune Un obiect este caracterizat de nume atribute (date) metode (servicii, operatii)

Clasa O clasă este o colecție de obiecte cu aceiași structură (caracteristici) și același comportament (metode sau operatii) Obiecte - Bicilete Clasa Biciletă - atribute tip cadru dimensiunea rotii numar de viteze - metode acelereza franeaza

Sintaxa definirii unei clase Definirea unei clase constă din două părţi distincte: declararea clasei implementarea clasei respective Sintaxa class IdNumeClasa{ declaratii de date membru; declaratii/definiții de functii membru; };

Protecția datelor și funcțiilor membre 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; protected – similara cu private dar care dădrepturi de acces şi funcţiilor membre ale claselor derivate din clasa respectivă public – drept de acces tuturor.

Declararea/definirea unei metode class IdNumeClasa{tip idNumeMetoda(tip1 p1, …, tip pn); }; Definire tip IdNumeClasa:: tip idNumeMetoda(tip1 p1, …, tip pn){ //instructiuni};

Exemplu class ContBancar{ private: char titular[100]; char codIBAN[25]; float sold; public: void init(char _titular[], char _codIBAN[], float _sold); void depune(float suma); void retrage(float suma); float getSold(); void afis(); };

Implementarea clasei ContBancar void ContBancar::init(char _titular[], char_codIBAN[], float _sold) {strcpy(titular,_titular); strcpy(codIBAN,_codIBAN); sold = _sold; } void ContBancar::depune(float suma){ sold = sold + suma; void ContBancar::retrage(float suma){ sold = sold - suma;

Sintaxa declararii unui obiect IdNumeClasa{ // …. } idOb1, …, idObN; sau IdNumeClasa idOb1, …, idObN;

Exemplu int main(){ ContBancar c; c.init("Popescu", "RO49RNCB0080005630320001", 100); c.afis(); printf("Depun 10 RON\n"); c.depune(10); printf("Extrag 15 RON\n"); }

Problema 1. Sa se citeasca de la tastatura informatiile specifice cartilor dintr-o librarie: denumire carte, autorul principal, al doilea autor, numarul de pagini si pretul. Prin intermediul unei clase, carte, care descrie datele despre o carte, proprietatile (denumire carte, autorul principal, al doilea autor, numarul de pagini si pretul) si metodele de prelucrare (initializarea si afisarea unei carti) sa se afiseze pe ecran informatiile despre orice carte tratata.

#include <iostream> #include<string. h> #include<stdio #include <iostream> #include<string.h> #include<stdio.h> using namespace std; int i=0; class carte { public: char nume[40]; char autor1[40]; char autor2[40]; int nrpag; double pret; void citeste_carte(char *numecarte,char *autorcarte1,char *autorcarte2,int *np,double *p); void afiseaza_carte(); }; // descrirea functiei de citire carte void carte::citeste_carte(char *numecarte,char *numeautor1, char *numeautor2,int *np,double *p) strcpy(nume,numecarte); strcpy(autor1,numeautor1); strcpy(autor2,numeautor2); nrpag=*np; pret=*p; } void carte::afiseaza_carte() cout<<"cartea nr."<<i<<":"<<nume<<endl; cout<<"\n primul autor:"<<autor1<<endl; cout<<"\n al doilea autor:"<<autor2<<endl; cout<<"\n nr pagini:"<<nrpag<<endl; cout<<"\n pretul:"<<pret<<endl; int main() carte carteacitita; char wnume[40],wautor1[40],wautor2[40]; int wnrpag; double wpret; char r='d'; while(r=='d') printf("\n denumirea cartii:"); gets(wnume); printf("\n primul autor:"); gets(wautor1); printf("\n al doilea autor:"); gets(wautor2); cout<<"\n nr. pagini:"; cin>>wnrpag; cout<<"\n pret:"; cin>>wpret; carteacitita.citeste_carte(wnume,wautor1,wautor2,&wnrpag,&wpret); carteacitita.afiseaza_carte(); cout<<"\n continuati?(d/n):"; cin>>r; return 0;

In urma executarii programului anterior s-au obtinut urmatoarele rezultate, care arata cum se declara o clasa, un obiect al acestei clase si modul in care se apeleaza membrii acestei clase, prin intermediul unei instante a acestei clase. denumirea cartii:Trecea o moara pe Siret primul autor:Mihail Sadoveanu al doilea autor: -- nr. pagini:200 pret:30 cartea nr.0:Trecea o moara pe Siret al doilea autor: -- nr pagini:200 pretul:30 continuati?(d/n):d denumirea cartii:O noapte furtunoasa primul autor:Ion Luca Caragiale nr. pagini:50 pret:25 continuati?(d/n):n