Sobes.tech
Junior

Cos'è l'incapsulamento?

sobes.tech AI

Risposta dell'AI

L'incapsulamento è un meccanismo che consente di nascondere lo stato interno di un oggetto e di proteggerlo da interferenze esterne. Combina dati (campi) e metodi che operano su questi dati in un unico blocco — la classe.

In C#, l'incapsulamento si ottiene tramite modificatori di accesso (public, private, protected, internal, protected internal, private protected) e proprietà.

Esempio con utilizzo di proprietà:

public class Persona
{
    private int _età; // Campo privato

    public int Età // Proprietà pubblica che fornisce un accesso controllato al campo _età
    {
        get { return _età; }
        set
        {
            if (value >= 0) // Validazione dei dati
            {
                _età = value;
            }
            else
            {
                // Si può lanciare un'eccezione o eseguire altra azione
                Console.WriteLine("L'età non può essere negativa.");
            }
        }
    }

    public string Nome { get; set; } // Proprietà auto-implementata

    public void MostraInfo()
    {
        Console.WriteLine($"Nome: {Nome}, Età: {Età}");
    }
}

Vantaggi dell'incapsulamento:

  • Nascondere l'implementazione: I dettagli interni dell'oggetto sono nascosti dal codice esterno.
  • Controllo dell'accesso: L'accesso ai dati avviene tramite metodi o proprietà, consentendo validazione e logica di business.
  • Flessibilità: Le modifiche all'implementazione interna della classe non influenzano il codice esterno che utilizza la sua interfaccia.
  • Miglioramento della manutenibilità: Il codice diventa più strutturato e comprensibile.