1、Fraction *frac = [[Fraction alloc] init];
[Fraction alloc] 分配内存,并赋初值 ,返回对象的指针
init 是在创建对象中可以参与的方法
#import <Foundation/Foundation.h>
static int t= 0;
@interface Fraction : NSObject{
int numerator; //分子
@public int denominator; //分母
}
-(id) init;
-(Fraction*) initWithNumerator:(int) numerator andDenominator:(int) denominator;
-(void) setNumerator:(int) numerator;
-(void) setDenominator:(int) denominator;
-(void) setNumerator:(int) numerator andDenominator:(int) denominator;
-(int) numerator;
-(int) denominator;
-(void) print;
+(void) t;
@end增加了2个方法init initWithNumerator
#import "Fraction.h"
@implementation Fraction
-(id) init{
self = [super init];
}
-(Fraction*) initWithNumerator:(int) n andDenominator:(int) d{
self = [self init];
if(self){
[self setNumerator:n andDenominator:d];
}
return self;
}
-(void) setNumerator:(int) n{
numerator = n;
}
-(void) setDenominator:(int) d{
denominator = d;
}
-(void) setNumerator:(int) n andDenominator:(int) d{
numerator = n;
denominator = d;
}
-(int) numerator{
return numerator;
}
-(int) denominator{
return denominator;
}
-(void) print{
NSLog(@"%d/%d",numeraotr,denominator);
}
-(void) m{
NSLog(@"-m:The class varable t is %d",++t);
}
+(void) t{
NSLog(@"+t:The class varable t is %d",++t);
}
@end1、self=[super init] //覆盖了NSObject中的init方法,返回值付给self,让self指向父类init方法返回的对象,
2、self = [self init]; //因为ObjC是动态语言,所以init方法可能返回一个不是当前类行的返回值,
3、if(self) 与 if(self!=nil)是相同的
int main(int argc,const char * argv[]){
//Fraction *frac = [[Fraction alloc] init];
Fraction *frac = [[Fraction alloc] initWithNumerator:2 andDenominator:3];
//[frac setNumerator:3 andDenominator:5];
[frac print];
NSLog(@"The denominator of Fration is %d\n",frac->denominator);
[Fraction t];
[frac m];
[frac release];
return 0;
}1、main方法里就可以用新的初始化方法了
本文详细解析Objective-C编程中Fraction类的实现,包括初始化方法、属性设置、打印功能以及类变量使用。通过实例代码展示了如何创建并操作Fraction对象,包括设置分子和分母、获取值和打印结果。同时,介绍了Fraction类内部的初始化过程和类变量的增加机制。
768

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



