Sobes.tech
Junior — Middle

Puteți explica principiul încapsulării și cum se realizează în programarea orientată pe obiecte?

sobes.tech AI

Răspuns de la AI

Încapsularea este un principiu al programării orientate pe obiecte care implică ascunderea implementării interne a unui obiect și furnizarea accesului la date și metode doar printr-o interfață definită.

Aceasta permite:

  • Protejarea datelor împotriva utilizării incorecte
  • Ascunderea complexității implementării
  • Asigurarea controlului asupra modificării stării obiectului

În limbajele OOP, încapsularea se realizează prin intermediul modificatorilor de acces (de exemplu, private, protected, public), care determină ce câmpuri și metode sunt accesibile din exterior.

Exemplu în Go (unde încapsularea se atinge prin identificatori exportați și non-exportați):

type User struct {
    name string // câmp non-exportat, accesibil doar în pachet
}

func (u *User) GetName() string {
    return u.name // metodă publică pentru accesarea numelui
}

func (u *User) SetName(newName string) {
    if newName != "" {
        u.name = newName
    }
}

Aici, câmpul name este ascuns de accesul extern, iar interacțiunea cu el se face prin metodele GetName și SetName, care controlează logica de acces și modificare.