Junior — Middle
Puoi spiegare il principio di incapsulamento e come viene realizzato nella programmazione orientata agli oggetti?
sobes.tech AI
Risposta dell'AI
L'incapsulamento è un principio della programmazione orientata agli oggetti che implica nascondere l'implementazione interna di un oggetto e fornire l'accesso ai dati e ai metodi solo attraverso un'interfaccia definita.
Questo permette:
- Proteggere i dati dall'uso scorretto
- Nascondere la complessità dell'implementazione
- Garantire il controllo sulla modifica dello stato dell'oggetto
Nei linguaggi OOP, l'incapsulamento si realizza tramite modificatori di accesso (ad esempio, private, protected, public), che determinano quali campi e metodi sono accessibili dall'esterno.
Esempio in Go (dove l'incapsulamento si ottiene tramite identificatori esportati e non esportati):
type User struct {
name string // campo non esportato, accessibile solo all'interno del pacchetto
}
func (u *User) GetName() string {
return u.name // metodo pubblico per accedere al nome
}
func (u *User) SetName(newName string) {
if newName != "" {
u.name = newName
}
}
Qui, il campo name è nascosto dall'accesso esterno, e l'interazione con esso avviene tramite i metodi GetName e SetName, che controllano la logica di accesso e modifica.