Sobes.tech
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.