Qualificatori di visibilità

6 aprile 2010

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:

QualificatoreVisibilità
publicLa variabile è visibile da qualunque oggetto
privatePossiamo utilizzare la variabile solo all’interno dei metodi della stessa classe
protectedPossono 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.

Tutte le lezioni

1 ... 7 8 9 ... 23

Se vuoi aggiornamenti su Qualificatori di visibilità inserisci la tua e-mail nel box qui sotto:
Tags:
 
X
Se vuoi aggiornamenti su Qualificatori di visibilità

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy