Description Concise de la façon .h et .m fichiers interagir en objective-c?

J'ai juste commencé à apprendre objective-C et je suis vraiment confus comment l' .h et .m les fichiers d'interagir les uns avec les autres. Ce programme simple a 3 fichiers:

Fraction.h

 #import <Foundation/NSObject.h>
    @interface Fraction : NSObject {
        int numerator;
 int denominator;
    }
    - (void) print;
    - (void) setNumerator: (int) n;
    - (void) setDenominator: (int) d;
    - (int) numerator;
    - (int) denominator;
    @end

Fraction.m

 #import "Fraction.h"
    #import <stdio.h>
    @implementation Fraction
    -(void) print { printf( "%i/%i", numerator, denominator ); }
    -(void) setNumerator: (int) n { numerator = n; }
    -(void) setDenominator: (int) d { denominator = d; }
    -(int) denominator { return denominator; }
    -(int) numerator { return numerator; }
    @end

Principal.m

 #import <stdio.h>
    #import "Fraction.h"
    int main(int argc, char *argv[]) {
        Fraction *frac = [[Fraction alloc] init];
 [frac setNumerator: 1];
 [frac setDenominator: 3];
 printf( "The fraction is: " );
 [frac print];
 printf( "\n" );
 [frac release];
 return 0;
    }

De ce que je comprends, initialement, le programme commence à courir à la main.m de fichier. Je comprends le C de base de concepts, mais de toute cette "classe" et "instance" stuff est vraiment déroutant. Dans la Fraction.h le fichier @interface est la définition du numérateur et du dénominateur un nombre entier, mais qu'en est-il de faire ci-dessous avec le (void)? et quel est le but de re-définition ci-dessous? Je suis aussi très confus quant à ce qui se passe avec le (void) et (int) les parties de la Fraction.m et la façon dont tout cela est rassemblé dans la main.m de fichier. Je suppose que ce que j'essaie de dire, c'est que cela semble assez facile, programme pour apprendre les différentes parties travailler les uns avec les autres - peut-on expliquer à des non-tech jargon?

InformationsquelleAutor RJ86 | 2010-04-11