Sobes.tech
Junior — Middle

Tudja magyarázni az inkapszuláció elvét és hogyan valósul meg az objektumorientált programozásban?

sobes.tech MI

Válasz az MI-től

Az enkapszuláció az objektumorientált programozás egyik alapelve, amely magában foglalja egy objektum belső megvalósításának elrejtését, és az adatokhoz és módszerekhez való hozzáférést csak egy meghatározott interfészen keresztül teszi lehetővé.

Ez lehetővé teszi:

  • Az adatok védelmét a helytelen használattól
  • A megvalósítás bonyolultságának elrejtését
  • Az objektum állapotának változásának ellenőrzését

OOP nyelvekben az enkapszulációt hozzáférés módosítók (pl. private, protected, public) segítségével valósítják meg, amelyek meghatározzák, hogy mely mezők és módszerek érhetők el kívülről.

Példa Go nyelven (ahol az enkapszuláció a exportált és nem exportált azonosítók révén érhető el):

type User struct {
    name string // nem exportált mező, csak a csomagon belül elérhető
}

func (u *User) GetName() string {
    return u.name // nyilvános módszer a név eléréséhez
}

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

Itt a name mező el van rejtve a külső hozzáférés elől, és a vele való interakció a GetName és SetName módszereken keresztül történik, amelyek szabályozzák a hozzáférést és a módosítást.