46e4e5304c85348d07685fe74caa8d33.ppt
- Количество слайдов: 19
Clase Abstractizarea datelor Programarea calculatoarelor şi limbaje de programare II Capitolul 1
Introducere n Cursul face o introducere în programarea orientată pe obiecte, cu aplicaţii în limbajul de programare C++
C++ n Dată: ex. 1, “student“, -8. 25 n Tip de dată: ex. char, int, float, double n Variabilă: zonă de memorie modificabilă n Constantă: zonă de memorie nemodificabilă n Identificator: ex. a, get. Hour, val 1 n Declarație: ex. int a; n Expresie: ex. 1+a*4 n Secvență, selecție, buclă n Funcție: ex. sqrt(9)
C++ n Referinţe, pointeri n Parameri de funcţie de tip valoare, referinţă, pointer n Stream: ex. de biblioteci <iostream>, <fstream> n Namespace: ex. std, std: : cin, std: cout, n Standard Template Library (STL), containeri, iteratori, algoritmi: ex. vector<int>, vector<double>
Clase și obiecte Student nume grupa get. Nume() print. Student() Dan G 01 Maria G 14 obiecte clasă Ana G 01
Clase și obiecte Cerc raza culoare get. Raza() get. Culoare() 5. 7 rosu 2 verde obiecte clasă
Clase şi obiecte Setul de date “House pricing” Area in sq ft Bedrooms Price in USD 2104 3 399. 900 1600 3 329. 900 2400 3 369. 000 1416 2 232. 000 3000 4 539. 900 House 2104 3 399900 area bedrooms price set. Area(int) int get. Area() 1600 3 329900 obiecte clasă
Programarea orientată pe obiecte (POO) n Object Oriented Programming (OOP) n Este o tehnică de programare care folosește conceptul de obiect pentru a grupa date sub formă de atribute și n proceduri asociate obiectelor sub formă de metode n n Clasa este descrierea obiectelor. Constă din nume, lista de atribute și lista de metode
Programarea orientată pe obiecte (POO) n Clasă – listează date din componenţa unui obiect şi n n operaţiile care se pot aplica asupra obiectelor; tip abstract de dată, tip de dată definit de programator Obiecte – instanţe ale claselor Încapsulare – împachetarea datelor şi funcţiilor şi prevenirea folosirii greşite a acestora; concept: ascunderea datelor Moştenire (inheritance) – tehnică de formare a unei noi clase refolosind definiţia unei clase create anterior Polimorfism – folosirea unui operator, a unei funcţii, clase etc în contexte diferite
Sumar n Definirea unei structuri n Accesarea membrilor unei structuri n Clasa House
Definirea unei structuri Cuvântul rezervat struct se foloseşte pentru a defini o nouă structură struct Time { int hour; int minute; int second; }; Identificatorul Time este numele ales de noi în exemplu pentru a denumi noul tip de dată definit prin această structură Între acolade se găsesc membrii structurii. Membrii aceleiaşi structuri trebuie să aibă nume unice, însă două structuri diferite pot conţine membri cu aceleaşi nume
Sumar n Definirea unei structuri n Accesarea membrilor unei structuri n Clasa House
Accesarea membrilor unei structuri n Membrii unei structuri sau ai unei clase pot fi accesaţi folosind operatorii de acces al membrilor n n operatorul -> n Operatorul. se foloseşte pentru a accesa membri ai structurilor sau ai claselor prin intermediul n n numelui obiectului al unei referinţe la obiect n Exemplu cout << time. Object. hour; cout << time. Ref. hour; n n time. Object este un obiect de tip Time time. Ref este o referinţă la un obiect de tip Time
Accesarea membrilor unei structuri n Operatorul -> se foloseşte pentru a accesa membrii unei structuri sau ai unei clase prin intermediul unui pointer la un obiect n Exemplu time. Ptr = &time. Object; cout << time. Ptr->hour; n time. Ptr este un pointer la un obiect de tip Time şi este iniţializat cu adresa de memorie a lui time. Object
Sumar n Definirea unei structuri n Accesarea membrilor unei structuri n Clasa House
Clasa House class House{ int area; int bedrooms; int price; public: void set. Area(int a){area = a; } int get. Area(){return area; } void set. Bedrooms(int b){bedrooms = b; } void set. Price(int p){price = p; } float get. Price. Per. Area(){ return float(price)/area; } };
Instanţe ale clasei House h 1; h 1. set. Area(2104); h 1. set. Bedrooms(3); h 1. set. Price(399900); House h 2; h 2. set. Area(1600); h 2. set. Bedrooms(3); h 2. set. Price(329900); std: : cout << h 1. get. Area() << std: : endl; std: : cout << h 1. get. Price. Per. Area() << std: : endl;
Listă de obiecte House #include <vector>. . . std: : vector<House> h; House h 1; h. push_back(h 1); House h 2; h. push_back(h 2);
Aplicaţia “House prices” n Citiţi setul de date din fişier şi încarcaţi obiectele într-o colecţie n Prin parcurgerea colecţiei: n Afişaţi numărul de dormitoare şi preţul celor mai mari 3 case conform atributului area n Afişaţi atributele casei care cel mai mare raport pret / suprafaţă
46e4e5304c85348d07685fe74caa8d33.ppt