Python 3
Machine Learning

PENTRU ELEVII DE LICEU

LECȚIA 17
PAG. 4 / 4
OOP - Încapsularea
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).
Editor - exemplu_oop.py
       
Rezultatul în consolă done
Lecția s-a încheiat acum.
 home   list  LECȚII   perm_identity   arrow_upward