LHF Objective-C语法(4)对象初始化

本文详细解析Objective-C编程中Fraction类的实现,包括初始化方法、属性设置、打印功能以及类变量使用。通过实例代码展示了如何创建并操作Fraction对象,包括设置分子和分母、获取值和打印结果。同时,介绍了Fraction类内部的初始化过程和类变量的增加机制。

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);
}

@end
1、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方法里就可以用新的初始化方法了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值