Carte MFC
O carte destul de buna, numai k e in limba rusa. Descarcati cartea aici - MFC
All kind of scripts
POO [2(2)] :: Incapsulare.Declaraţii de obiecte şi definiţii de clasă
POO. Curs #2(2) :: 15.09.2007
Incapsularea defineşte 2 aspecte:
1. combinarea proprietăţilor şi componentelor într-un tip abstract de date – clasă
2. definirea nivelului de acces către proprietăţile şi comportamentul obiectelor(Incapsularea datelor)
Există 3 nivele de protecţie a datelor în cadrul unui obiect:
- Private – variabilele şi funcţiile definite la nivel private sunt vizibile numai din interiorul clasei unde au fost declarate
- Protected – variabilele şi funcţiile definite la nivelul protected sunt vizibile atît în clasa în care au fost declarate cît şi în clasele derivate din clasa dată.
- Public – variabilele şi funcţiile membre definite la nivelul public pot fi accesate din oricare clasă(din întreaga aplicaţie).
Exemplu:
class ContBancar {
private:
int ID;
protected:
double sold;
Client *pClient;
private:
double GetDobânda
public:
double GetSold();
int SetClient(const Client & client);
…
};
private, protected, public – modificatori de acces.
Observaţie: În C++ un modificator poate fi aplicat la mai multe variabile şi funcţii.
În C#/Java pentru fiecare variabilă,funcţie trebuie de specificat modificatorul.
Declaraţie de obiecte
C#/Java
<Nume_clasa><nume_obiect>[=new<nume_clsa>(…)];
C++
1) <Nume_clasa><nume_obiect>;
2) <Nume_clasa>*<nume_obiect>[=new<nume_clasa>(…)];
Exemple:
C++ ContBancar cont1;
ContBancar *pCont = new
ContBancar();
C#/Java ContBancar = new ContBancar();
POO [2] :: Abstractizarea. Obiecte şi clase
POO. Curs #2 :: 15.09.2007
Definiţie: Un identificator este o expresie alfa-numerică care începe în mod obligatoriu cu un caracter alfabetic sau ‘_’ , nu poate conţine semne speciale.
Exemple: ContBancar, pi, k7, _var, m_szstr
class <Nume_clasă>{
<declaraţii_variabile_membre>
<declaraţii_functii_membre>
};
unde:
- <Nume_clasă> – un identificator;
- <declaraţii_variabile_membre> – secţiunea, în care se definesc proprietăţile obiectelor ce vor fi instanţiate în acestă clasă.
sintaxa:
- C++ <tip><nume_var>;
- C# / Java [<modificator>]<tip><nume_var>[=val_init>];
o nume_var – identificator
o tip – este un tip predefinit, sau definit de utilizator din limbajul de programare
o <modificator> - reprezintă un cuvînt rezervat care defineşte vizibilitatea variabilei din exterior
Observaţie1: La declararea unei variabile_membre în C++ nu se permite iniţializarea cu valoare iniţială, dar în C# / Java se permite.
Observaţie2: Dacă variabila nu este iniţializată la declarare atunci ea în C++ are valoare nedefinită, iar în C# / Java le nulifică.
- <declaraţii_funcţii_membre> – conţine secţiunea în care sunt definite funcţiile membre ale clasei care descriu comportamentul obiectelor de clasa respectivă.
o C++
§ <tip_retur><nume_fct>(lista_param_formali);
§ <tip_retur><nume_fct>(<lista_param_formali>){
<corp_functie>
};
o C# / Java
§ [<modificatori>]<tip_return><nume_fct>(<lista_param_formali>)
{
<corp_fct>
}
- <tip_retur> - tip predefinit sau definit de utilizator şi reprezintă tipul valorii returnate de funcţie. Dacă funcţia nu returnează nici o valoare(procedură) atunci tipul de retur este void
- <nume_fct> - identificator
- <lista_param_formali> - <tip><nume_param>[=Nul>]
La nivel de abstractizare în procesul de identificare a obiectelor , proprietăţilor şi comportamentului lor se face abstracţie de tipuri.
POO [1] :: Principii de programare orientată pe obiect
- Abstractizarea
- Incapsularea
- Generalizarea/Moştenirea
- Polimorfism
Definiţie: Obiectul este o entitate caracterizată prin proprietăţi şi comportament. Proprietăţile sunt caracteristici ale obiectului; comportamentul - acţiuni care, odată aplicate obiectului schimbă proprităţile.
Exemplu: Masa
- Proprietăţi: nr de picioare, culoarea, pozitia, etc;
- Actiuni: schimb poziţia, vopsescîn altă culoare.
Observaţie: Două obiecte pot avea caracteristici şi comportament comun, dar sunt de identitate diferită.
- Abstractizarea - principiu care permite identificarea caracteristicilor şi comportamentului obiectelor ce ţin nemijlocit de domeniul problemei. Rezultatul - model. În urma abstractizării, entităţile din domeniul problemei se definesc prin clase.
Definiţie: Clasa - tip abstract de date, ce defineşte un set de obiecte cu caracteristici şi comportament comun.
Un obiect este o instanţă a clasei.
- Incapsularea este caracterizată prin 2 aspecte:
- Gruparea comportamentelor şi caracteristicilor într-un tip abstract de date
- Definirea nivelului de acces la datele unui obiect
Orice obiect constă din interfaţă şi parte logică
- Generalizarea/Moştenirea
- Generalizarea - principiu ce permite generalizarea unor clase pe baza altor clase ce au comportament comun.
- Moştenirea - definirea unor clase derivate din clase generice
1. Polimorfism. Prin polimorfism vom înţelege posibilitatea mai multor obiecte dintr-o ierarhie de clase de a utiliza denumiri de metode cu acelaşi nume dar cu , comportament diferit.
Definiţie: Un program scris OO constă dintr-o mulţime de obiecte legate prin diferite relaţii.O mulţime de clase legate între ele prin relaţii de moştenire formează o ierarhie de clase.