依旧是Fraction类,只不过这次使用属性方法
#import <Foundation/Foundation.h>
@interface Fraction:NSObject
@property int numerator,denominator;//类Fraction 包含两个属性
-(void) print;
-(double) converToNum;
@end
@implementation Fraction
@synthesize numerator,denominator;//编译器自动生成setter getter方法,setNumerator,setDenominator,为setter方法,Numerator,Denominator getter方法
-(void) print{
//return ((@"%i/%i",numbertor,denomiator));
NSLog(@"%i/%i",numerator,denominator);//直接打印属性
}
-(double) converToNum{
if(denominator!=0){
return (double) numerator/denominator;
}
else return NAN;//NAN 表示未定义的数
}
@end
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
// NSLog(@"Hello, World!");
Fraction *myFraction=[[Fraction alloc] init];
/*
[myFraction setNumerator:1];
[myFraction setDenomiator:3];
NSLog(@"The value is");
[myFraction print];
NSLog(@"%i/%i ",[myFraction numbertor],[myFraction denomiator]);
*/
//点运算符,可以非常简便的访问类的方法
myFraction.numerator=1;
myFraction.denominator=3;
NSLog(@"The value is");
NSLog(@"%i %i ",myFraction.numerator,myFraction.denominator);//点语法调用getter方法
//调用属性的setter
myFraction.numerator=1; // (myFraction.numerator=value) == ([myFraction setNumerator:(int)]),点语法调用setter方法
myFraction.denominator=0;
NSLog(@"%f AND %f",myFraction.converToNum,[myFraction converToNum]);
[myFraction setNumerator:1];
[myFraction setDenominator:4];
NSLog(@"The value is");
NSLog(@"%i %i ",[myFraction numerator],[myFraction denominator]);//获得属性的值,相当于调用getter方法 [myFraction numerator] == myFraction.numerator
}
return 0;
}