Per realizzare al meglio l'incapsulamento, nei linguaggi orientati agli oggetti, sono stati introdotti i cosiddetti "qualificatori", che determinano la visibilità delle variabili che definiamo all'interno delle nostre classi. I livelli di visibilità in Objective C sono 3:
| Qualificatore | Visibilità |
|---|---|
| public | La variabile è visibile da qualunque oggetto |
| private | Possiamo utilizzare la variabile solo all'interno dei metodi della stessa classe |
| protected | Possono accedere alla variabile solo i metodi della stessa classe e quelli delle classi da essa derivate |
Le variabili di istanza per default sono protected, quindi accessibili dalle sottoclassi. Esaminiamo la sintassi necessaria a dichiarare la visibilità nel file di interfaccia:
@interface Classe:NSObject
{
int variabileProtetta; // protected per default
@private
int variabilePrivata;
@public
int variabilePubblica;
@protected
int variabileProtetta;
}
@end
Per indicare la visibilità è sufficiente decorare la dichiarazione della variabile con la relativa keyword, preceduta da un carattere chiocciola (@).
Visibilità dei metodi
Il discorso cambia per quanto riguarda i metodi. In Objective C non possiamo applicare modificatori di visibilità ai metodi: tutti i metodi di istanza sono pubblici, almeno finché vengono dichiarati sul file di interfaccia.
Per simulare un metodo privato è possibile dichiararlo solamente nel file di implementazione e non in quello di interfaccia, in questo modo non è possibile invocare dall'esterno il metodo, in quanto esso non è esposto in nessun modo, almeno in modo formale. Tuttavia, se invocato dall'esterno, il metodo "nascosto" viene comunque eseguito.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: