Sobes.tech
Junior — Middle

Kas saaksite selgitada inkapsulatsiooni põhimõtet ja kuidas see realiseerub objektorienteeritud programmeerimises?

sobes.tech AI

Vastus AI-lt

Kapsülatsioon on objektorienteeritud programmeerimise põhimõte, mis hõlmab objekti sisemise teostuse varjamist ning andmetele ja meetoditele juurdepääsu ainult määratletud liidese kaudu.

See võimaldab:

  • Andmeid kaitsta vale kasutamise eest
  • Varjata teostuse keerukust
  • Tagada kontroll objekti oleku muutmise üle

OOP-keeltes realiseeritakse kapsülatsioon juurdepääsumeetodite (näiteks private, protected, public) abil, mis määravad, millised välised väljad ja meetodid on kättesaadavad.

Näide Go keeles (kus kapsülatsioon saavutatakse eksporditud ja mitteeksportitud identifikaatorite kaudu):

type User struct {
    name string // mitteeksportitud väli, kättesaadav ainult paketis
}

func (u *User) GetName() string {
    return u.name // avalik meetod nime saamiseks
}

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

Siin on väli name varjatud välise juurdepääsu eest ning selle interaktsioon toimub GetName ja SetName meetodite kaudu, mis kontrollivad juurdepääsu ja muutmise loogikat.