Objective-C语言和C++中类的定义、对象和方法有一些区别,看起来更加直观明了。
fraction.h头文件
#import <Foundation/Foundation.h>
@interface Fraction : NSObject
{
int numerator;
int denominator;
}
-(void) print;
-(void) setNumerator: (int) n;
-(void) setDenominator: (int) d;
-(int) numerator;
-(int) denominator;
-(double) convertToNum;
@end;
fraction.m源文件
#import"fraction.h"
@implementation Fraction
-(void) print
{
NSLog(@"%i/%i",numerator,denominator);
}
-(void) setNumerator: (int) n
{
numerator=n;
}
-(void) setDenominator: (int) d
{
denominator=d;
}
-(int) numerator
{
return numerator;
}
-(int) denominator
{
return denominator;
}
-(double) convertToNum
{
if (denominator!=0)
{
return (double) numerator/denominator;
}
else
{
return 1.0;
}
}
@end
main_fraction.m源文件
#import "fraction.h"
int main(int argc,const char *agrv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //自动分配内存保留空间
Fraction *my_fraction = [[Fraction alloc] init]; //实例化对象并分配内存空间, 与C++类实例化对象的不同
[my_fraction setNumerator:1]; //C++则是my_fraction.setNumberator(1);
[my_fraction setDenominator:3];
NSLog(@"The value of my_fraction is:");
[my_fraction print];
[my_fraction release]; //释放实例化对象使用的内存
[pool drain]; //释放已分配的内存
return 0;
}