Sobes.tech
Junior — Middle

Magyarázza el az adatok kapszulázásának fogalmát az objektumorientált programozásban.

sobes.tech MI

Válasz az MI-től

A kapszulázás az objektumorientált programozás egyik alapelve, amely magában foglalja az objektum belső állapotának elrejtését, és csak metódusokon (interfészek) keresztül való hozzáférést.

Go nyelvben a kapszulázás azonosítók láthatóságával érhető el:

  • Nagybetűvel kezdődő nevek exportálódnak és más csomagokból elérhetők (nyilvánosak).
  • Kisbetűvel kezdődő nevek csak a csomagon belül érhetők el (privátok).

Ezért az adatok kapszulázásához a struktúra mezőit kisbetűvel kell deklarálni, és metódusokat kell biztosítani ezekhez való hozzáféréshez és módosításhoz.

Példa:

package user

type User struct {
    name string // privát mező
}

func NewUser(name string) *User {
    return &User{name: name}
}

func (u *User) GetName() string {
    return u.name
}

func (u *User) SetName(name string) {
    u.name = name
}

Ez a megközelítés lehetővé teszi az adatokhoz való hozzáférés kontrollját, azok integritásának biztosítását, és a belső implementáció módosítását anélkül, hogy a külső kódot befolyásolná.