- Learn
- Guida Objective C
- Incapsulamento: scrivere una classe in Objective C
Incapsulamento: scrivere una classe in Objective C
L’interfaccia, nella programmazione object oriented, serve ad una entità (un oggetto) per mostrare i metodi che ha per rispondere ai messaggi esterni. Questo per ottemperare al principio del’incapsulamento.
Interfaccia
Vediamo un esempio di interfaccia di una classe:
//definizione dell'interfaccia: "PrimaClasse.h"
#import <Foundation/Foundation.h>
@interface PrimaClasse : NSObject
{
// variabili d'istanza (private)
int intero;
NSString *stringa;
}
// metodi setter e getter
- (void) setIntero : (int) parametro;
- (int) intero;
- (void) setStringa : (NSString *) parametro;
- (NSString *) stringa;
// metodi di istanza
- (NSString *) metodoSenzaParametri;
- (NSString *) metodoConUnParametro:(NSString *) parametro;
// metodo di classe
+ (NSString *) metodoDiClasse
{
return @"Invocato metodo statico";
}
@end
L’interfaccia di una classe inizia sempre con la parola chiave @interface
e termina con la parola chiave @end
.
Subito dopo @interface
segue il nome della classe, i due punti ed il nome della classe base, da cui l’oggetto deriva. Per convenzione il nome delle classi segue lo standard “CamelCase”, ovvero le iniziali delle parole che compongono la classe sono in maiuscolo.
Nelle parentesi graffe si definiscono le variabili di istanza e all’esterno, prima della parola chiave @end
, possiamo inserire le dichiarazioni dei metodi e delle proprietà (metodi setter/getter).
Implementazione
Il file di implementazione inizia sempre con una riga di codice che “importa” il file di interfaccia:
#import "PrimaClasse.h"
Anche in questo caso tutto il codice andrà scritto all’interno delle parole chiave @implementation NomeClasse
e @end
.
Ogni metodo implementato inizia con la stessa definizione che è stata scritta nel file interfaccia. Il corpo del metodo è delimitato dalle parentesi graffe.
#import "PrimaClasse.h"
@implementation PrimaClasse
// Metodi setter e getter
- (void) setIntero : (int) parametro { intero = parametro; }
- (int) intero { return intero; }
- (void) setStringa : (NSSTring *) parametro {
[stringa autorelease];
stringa=[parametro retain];
}
- (NSSTring *) stringa { return stringa; }
// Metodi di istanza
- (NSSTring *) metodoSenzaParametri {
return @"Non ho parametri";
}
- (NSSTring *) metodoConUnParametro:(NSSTring *) parametro {
return [NSString stringWithFormat:@"Il parametro passato è %@", parametro];
}
// Metodo di classe
+ (NSString *) metodoDiClasse {
return @"Invocato metodo statico";
}
@end
Abbiamo definito quindi le nostre proprietà, tramite getter e setter, i metodi di PrimaClasse
ed abbiamo definito un metodo statico.
Utilizzeremo questa classe per sviluppare gli esempi nelle prossime lezioni, dove, tra l’altro, approfondiremo l’uso delle stringhe in Objective C e la dichiarazione di proprietà nella versione 2.0.
Se vuoi aggiornamenti su iOS, mobile inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Douglas Crockford: Javascript e la sicurezza in HTML5
Douglas Crockford, creatore di JavaScript e del formato JSON, spiega nel video cosa pensa di HTML5. Il linguaggio di markup […]