这个实例为我们展示了在object-c中,如何创建和使用类(class),不要忘记,object-c是面向对象的啊。
Fraction,,正如它的含义所在一样,这个程序只提供了打印分数的例子。
1. 代码:
//文件名:Fraction.h
#import <Foundation/NSObject.h>
@interface Fraction: NSObject {
int numerator;
int denominator;
}
-(void) print;
-(void) print2;
-(void) setNumerator: (int) d;
-(void) setDenominator: (int) d;
-(int) getNumerator;
-(int) getDenominator;
@end
//文件名:Fraction.m
#import "Fraction.h"
#import <stdio.h>
@implementation Fraction
-(void) print {
printf( "%i/%i", numerator, denominator );
}
-(void) print2 {
printf( "%i/%i", [self getNumerator], [self getDenominator] );
}
-(void) setNumerator: (int) n {
numerator = n;
}
-(void) setDenominator: (int) d {
denominator = d;
}
-(int) getDenominator {
return denominator;
}
-(int) getNumerator {
return numerator;
}
@end
// main.m
#import <stdio.h>
#import "Fraction.h"
int main( int argc, const char *argv[] ) {
// create a new instance
Fraction *frac = [[Fraction alloc] init];
// set the values
[frac setNumerator: 1];
[frac setDenominator: 3];
// print it
printf( "The fraction is: " );
[frac print];
printf( "\n" );
[frac print2];
printf( "\n" );
// free memory
[frac release];
return 0;
}
2.编译运行:
$ gcc -fconstant-string-class=NSConstantString -c main.m -I /GNUstep/System/Library/Headers
$ gcc -c Fraction.m -I /GNUstep/System/Library/Headers
$ gcc -o main main.o Fraction.o -L /GNUstep/System/Library/Libraries/ -lobjc -lgnustep-base
$ ./main.exe
The fraction is: 1/3
1/3
3. 说明:
(1). 请比较print 和print2两个消息的不同;
(2). 关于Fraction,更复杂的例子请参考“Windows如何进行Object-C的开发”一文,位于iPhone目录下。
本文介绍了一个简单的Objective-C程序,演示了如何定义并使用一个名为Fraction的类来表示分数。该程序包括设置分子和分母的方法,并通过两种不同的方式打印分数。

被折叠的 条评论
为什么被折叠?



