Sobes.tech
Junior — Middle

Můžete vysvětlit princip zapouzdření a jak je realizován v objektově orientovaném programování?

sobes.tech AI

Odpověď od AI

Zapouzdření je princip objektově orientovaného programování, který předpokládá skrytí vnitřní implementace objektu a poskytování přístupu k datům a metodám pouze prostřednictvím definovaného rozhraní.

To umožňuje:

  • Ochranu dat před nesprávným použitím
  • Skrytí složitosti implementace
  • Zajištění kontroly nad změnou stavu objektu

V jazycích OOP je zapouzdření realizováno pomocí modifikátorů přístupu (například private, protected, public), které určují, která pole a metody jsou dostupná zvenčí.

Příklad v Go (kde je zapouzdření dosaženo pomocí exportovaných a neexportovaných identifikátorů):

type User struct {
    name string // neexportované pole, dostupné pouze v rámci balíčku
}

func (u *User) GetName() string {
    return u.name // veřejná metoda pro přístup k jménu
}

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

Zde je pole name skryto před vnějším přístupem a s ním se komunikuje prostřednictvím metod GetName a SetName, které řídí logiku přístupu a změn.