我剛開始學習目標C,並且很困惑.h和.m文件如何相互交互。這個簡單的程序有3個文件:簡要描述.h和.m文件如何在目標c中進行交互?
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
的main.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;
}
據我瞭解,該計劃最初啓動運行main.m文件。我理解C的基本概念,但是這些「類」和「實例」的東西真的很混亂。在Fraction.h文件中,@interface將分子和分母定義爲一個整數,但是下面還有(void)做了什麼?以及下面重新定義的目的是什麼?我也對Fraction.m的(void)和(int)部分發生了什麼以及所有這些在main.m文件中如何結合感到困惑。我想我想說的是,這似乎是一個相當簡單的程序,以瞭解不同部分如何相互協作 - 任何人都可以用非技術術語來解釋嗎?