OOP - Incapsulamento dei dati

L'incapsulamento è un meccanismo che consiste nel raccogliere i dati e i metodi all'interno di una struttura nascondendo l'implementazione dell'oggetto, cioè impedendo l'accesso ai dati con altri mezzi diversi dai servizi proposti. Esso permette di garantire l'integrità dei dati contenuti nell'oggetto.

Il mascheramento delle informazioni

L'utente di una classe non deve per forza conoscere in che modo sono strutturati i dati nell'oggetto, cioè non è tenuto a conoscere l'implementazione. Così, impedendo all'utente di modificare direttamente gli attributi, e obbligandolo ad usare le funzioni definite per modificarli (dette interfacce), si assicura l'integrità dei dati (si potrà ad esempio assicurare che il tipo di dati forniti sia conforme alle nostre attese, oppure che i dati si trovino effettivamente nell'intervallo atteso).

L'incapsulamento permette di definire dei livelli di visibilità degli elementi della classe. Questi livelli di visibilità definiscono i diritti di accesso ai dati a seconda che vi si acceda con un metodo della classe stessa, di una classe ereditaria, oppure di una classe qualsiasi. Esistono tre livelli di visibilità:

Pubblica, le funzioni di tutte le classi possono accedere ai dati o ai metodi di una classe definita con il livello di visibilità pubblica. Si tratta del più basso livello di protezione dei dati;

Protetta, l'accesso ai dati è riservato alle funzioni delle classi ereditarie, cioè dalle funzioni membri della classe invece che dalle classi derivate;

Privata: l'accesso ai dati è limitato ai metodi della classe stessa. Si tratta del livello più elevato di protezione.

Foto: © Maksim M - Shutterstock.com

I nostri contenuti sono creati in collaborazione con esperti di high-tech, sotto la direzione di Jean-François Pillou, fondatore di CCM.net. CCM è un sito di high-tech leader a livello internazionale ed è disponibile in 11 lingue.
Potrebbe anche interessarti
Il documento intitolato « OOP - Incapsulamento dei dati » dal sito CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.
Unisciti ALLA COMMUNITY