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.