Contenuti del Corso
Java OOP
Java OOP
Principi OOP: Incapsulamento
Incapsulamento
Un altro principio fondamentale della Programmazione Orientata agli Oggetti (OOP). Probabilmente il principio più cruciale, poiché l'intero paradigma OOP si basa su di esso. Hai già incontrato questo principio in questo capitolo quando hai definito campi e metodi come private
o public
. Ora però discuteremo questo principio in modo più dettagliato.
Nota
Si prega di non confondere la parola 'interfaccia' (un modello per la creazione, uno schema) con l'Interface che studieremo nella prossima sezione!
Modificatori di accesso
I modificatori di accesso sono una parte integrante dell'incapsulamento, quindi anche se li abbiamo già trattati, è necessario rivedere questo argomento. Di seguito è riportata la definizione dei modificatori di accesso insieme a una tabella e una breve descrizione:
public
: I membri con modificatore di accessopublic
sono accessibili da qualsiasi parte del codice. Hanno l'ambito più ampio. Ad esempio, un metodopublic
può essere chiamato da qualsiasi classe;private
: I membri con modificatore di accessoprivate
sono accessibili solo all'interno della classe in cui sono dichiarati. Non sono visibili alle classi esterne. Questo garantisce una forte incapsulamento;protected
: I membri con modificatore di accessoprotected
sono accessibili all'interno dello stesso package e dalle sottoclassi, anche se si trovano in package diversi. Questo consente una condivisione controllata delle informazioni;default (package-private): Se non viene specificato alcun modificatore di accesso, il membro è accessibile solo all'interno dello stesso package. È il livello di accesso predefinito.
Vediamo come funzionano i modificatori di accesso nella pratica. Ci sono due classi: una creata nello stesso package della classe main
, e l'altra creata in un package diverso. Vediamo come i modificatori di accesso influenzano questa situazione:
Negli screenshot, puoi vedere da dove sono accessibili le variabili con i nomi corrispondenti.
Ricordo inoltre che, se desideri aggirare i modificatori di accesso, puoi leggere qui: link.
Nota
Vale anche la pena menzionare che i metodi possono anch'essi avere modificatori di accesso. Funzionano allo stesso modo dei campi. Ad esempio, un metodo con modificatore di accesso private sarà accessibile solo nella classe in cui è stato creato.
Riepilogo
L'incapsulamento è molto utile quando i dati devono essere organizzati in compartimenti, rendendo il codice altamente strutturato. Inoltre, grazie all'incapsulamento, puoi configurare dove e come i tuoi campi e metodi possono essere accessibili.
1. Che cos'è l'incapsulamento in Java?
2. Quale modificatore di accesso è il più restrittivo?
3. Quali sono i vantaggi dell'incapsulamento?
4. Quali delle seguenti affermazioni sull'incapsulamento sono vere?
Grazie per i tuoi commenti!