Documente Academic
Documente Profesional
Documente Cultură
ORIENTED
PROGRAMMING
DE BOTNARU VICTOR
1. Introducere
• Vrem să facem un carusel
• Ce îi trebuie unui carusel?
• Ce probleme pot apărea?
• Soluția - OOP
2. Principii OOP
Cuprins • Terminologie
• Grade de protecție
• Principiul de encapsulare
• Principiul de abstracție
• Principiul de moștenire
3. Recapitulare
VREM SĂ
FACEM UN
CARUSEL
Exemplu folosit:
https://serenader2014.github.io/flutter_carousel_slider/#/
• O listă de imagini prin care să
circule
Ce îi trebuie • Două funcții, pentru a schimba
imaginea arătată cu cea din
unui carusel stânga/dreapta
pentru a
funcționa?
Hai să facem un carusel!
Ce probleme pot apărea?
• Dacă vrem să facem 5 carusele diferite? Trebuie să rescirem funcțiile
pentru fiecare in parte?
• Dacă vrem să avem și carusele verticale, și carusele orizontale? Cum
facem diferența dintre cele două?
• Dacă nu vrem ca imaginile să fie globale, la îndemâna oricărei părți
din program?
CUM AR
A RĂTA
CODUL CU
5
CARUSELE:
SOLUȚIE - OBJECT ORIENTED
PROGRAMMING
• Observăm că fiecare carusel are o strcutră similară, fiecare are
nevoie de un set de imagini, o funcție de animat, și două funcții de
mișcare.
• Putem să creem o structură de bază a caruselelor, o diagramă, pe
care toate să le urmeze.
• Când avem nevoie de un carusel nou, pur și simplu generăm
unul după schemă.
• Schema se numește CLASĂ iar caruselul generat se numește
OBIECT.
C U M A R
A R ĂT A
C O D U L C U
5
C A R U S E L E
A C U M :
Exemplu de folosire ale celor 5 carusele:
PRINCIPII
OOP
1. Terminologie
• O CLASĂ este schema după care se pot construi obiecte - funcționează ca
un tip de date, cum ar fi string, int, etc. , cu adăugirea de funcții.
• Un OBIECT este o instanță a unei clase.
• O PROPRIETATE este o variabilă definită într-o clasă. Fiecare obiect va
avea versiunea sa proprie a proprietății.
• O METODĂ este o funcție definită într-o clasă. La fel ca la proprietăți,
metodele acționează diferit pentru fiecare obiect în parte.
• Uniunea proprietăților și metodelor unei clase se
numește MEMBRII clasei.
2. Protecția metodelor/ proprietăților
• Există situații în care nu vrem să avem puterea de a
modifica proprietăți / accesa metode în afara claselor, deoarece ar
putea duce la unwanted behavior, și ne ajută în urmărirea
principiilor definite mai jos.
• De aceea există 3 grade de protecție pentru metode/variabile:
• Public: Membrul poate fi accesat oriunde în program;
• Private: Membrul poate fi accesat numai înăuntrul clasei;
• Protected: La fel ca private, numai că membrul poate fi accesat și de
subclase (explicate mai târziu).
• Principiul de Encapsulare spune
că un obiect ar trebui să-și
mențină starea privată.
• Cu alte cuvinte, niciun alt obiect
nu ar trebui să aibă acces la
3. Principiul proprietățile sale direct, ci, să îi
de Encapsulare poată schimba starea indirect,
prin metode.
• Presupunem următorul exemplu:
De ce am • Ea este Ana.
• Ana a definit clasa Carusel, in
urma acest care membrul currentImage e public.
principiu? • La un moment dat în cod, Ana
a schimbat variabila să fie 0.
• Ana nu și-
a dat seama că, dacă schimbă variabila,
nu schimbă și imaginea afișată pe
moment.
• Acum, imaginea afișată și cea care crede
programul că este curentă nu coincid,
ceea ce va duce la
• Dacă currentImage ar fi fost un membru privat, iar clasa ar fi
conținut următoarea metodă: