@implementation部分:@implementation部分包含声明在@interface部分的方法的实际代码。也就是说在@interface部分声明方法,在@implementation部分定义它们(@implementation给出实际逻辑的代码)。
其格式如下:
@implementation 类名名称
内容代码(解决方案,说哪个都可以)
@end
下面代码很好的体线了@interface与@implementation的用法:
值的再次提醒NSLog(@"字符串");是不能输出中文的。
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
{
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
@end
@implementation Fraction
-(void) print
{
NSLog(@"%i/%i", numerator, denominator);
}
-(void) setNumerator:(int)n
{
numerator = n;
}
-(void) setDenominator:(int)d
{
denominator =d;
}
@end
int main (int argc, const char * argv[])
{
@autoreleasepool {
Fraction *frac1 = [[Fraction alloc] init];
Fraction *frac2 = [[Fraction alloc] init];
int a, b, x, y;
printf("请输入四个整数并用逗号隔开,谢谢合作!\n");
scanf("%d,%d,%d,%d", &a, &b, &x, &y);
[frac1 setNumerator: a];
[frac1 setDenominator: b];
[frac2 setNumerator: x];
[frac2 setDenominator: y];
NSLog(@"First fraction is:");
[frac1 print];
NSLog(@"Second fraction is:");
[frac2 print];
}
return 0;
}
类名名称必须与@interface部分的类名相同,可以在父类的名称之后使用冒号,如同在@interface部分使用的冒号一样,但通常不这么做,@implementation部分包含在@interface部分指定的每个方法的代码。与@interface部分类似,每种方法的定义首先指定方法(类或者实例)的类型、返回类型、参数及其类型。然而,我们并没有使用分号来结束该行,而是将之后的方法代码放入一对花括号中。
Program部分:
program部分包含解决特定问题的代码,如果有必要,它可以跨越多个文件。(具体用法参考Objective-C2.0基础教程)
实例变量的访问以及数据封装:
数据封装对于有编程基础的人来说都应该明白,在这里数据封装其实就是将实例变量隐藏起来的做法(也可以理解为将类的定义与类的内部细节进行分离开来)。这里需要注意的就是:访问的方法名与实例变量名是相同的 。