La définitions d'un classe est structuré comme sa
déclaration, elle commence par la directive @implémentation et
finie par @end:
@implementation NomClasse : SaSuperClasse
déclarations de variables d'instances
définitions des méthodes
@end
Tout fichier d'implémentation importe sont fichier d'interface, il n'est donc pas nécessaire de répéter les déclarations déjà réalisées. Le fichier d'implémentation peu donc omettre sans danger :
#import "NomClasse.h"
@implémentation NomClasse
définitions des méthodes
@end
Les méthodes d'une classe sont définies comme des fonctions C, avec un bloc défini par des accolades. Avant le bloc elles sont déclarées avec la même syntaxe que pour l'interface:
+ alloc
{
}
- (int)tag
{
}
- moveTo:(NXCoord)x :(NXCoord)y
{
}
Pour les méthodes avec un nombre variable d'argument on utilise
les même technique qu'en C:
#import <stdarg.h>
- getGroup:group, ...
{
va_list ap;
va_start(ap, group);
. . .
}