LECȚIA 17
|
PAG. 4 / 4
|
Acasă >>>
Lecții online

Alte exemple interesante
A. Controlul vârstei într-un sistem de evidențăUn sistem care gestionează date despre persoane nu ar trebui să permită înregistrarea unor vârste imposibile. Prin încapsularea atributului __varsta, ne asigurăm că modificările pot fi făcute doar prin metoda seteaza_varsta(), unde putem valida valoarea:
class Persoana:
def __init__(self, nume):
self.nume = nume
self.__varsta = 0
def seteaza_varsta(self, v):
if 0 <= v <= 120:
self.__varsta = v
else:
print("Valoare invalidă pentru vârstă.")
def afiseaza_varsta(self):
print(f"{self.nume} are {self.__varsta} ani.")
B. Simularea unui aparat de cafea
Într-un model simplificat al unei cafetiere, încapsulăm nivelul apei astfel încât utilizatorul să nu poată umbla direct la rezervor. În schimb, oferim metode sigure pentru alimentare și preparare:
class Cafetiera:
def __init__(self):
self.__apa = 0
def adauga_apa(self, ml):
if ml > 0:
self.__apa += ml
def prepara_cafea(self):
if self.__apa >= 200:
self.__apa -= 200
print("Cafeaua este gata!")
else:
print("Nu e suficientă apă!")
EXERCIȚII
Puteți testa exemplele prezentate mai sus direct în editor. Pentru exersarea conceptelor prezentate, citește fiecare clasă de mai sus și creează câte un mic program care:
- instanțiază un obiect;
- apelează metodele în mod corect; - încearcă să modifice direct atributele private (și observă ce se întâmplă în această situație).

home | list LECȚII | perm_identity | arrow_upward |