objective-C笔记(四)

@interface Tire: NSObject

@end //Tire

@implementation Tire

-(NSString *) description{
	return (@"i am a tire . i last a while");
}

 1.description方法的作用类似于java中的 toString(),可以通过定义description方法来达到自定义NSLog输出的类的内容的目的。如:

 

Tire* tire=[Tire new]
NSLog(@"%@",tire);

输出的结果就是:

i am a tire . i last a while

 

 2.类的初始化

 

以下是一个car类的初始化,该类包含了一个Engine(发动机)和一个Tire(轮胎)数组:

 

声明部分

@interface Car: NSObject
{
	Tire* tires[4];
	Engine* engine;
}

-(void) print;

@end//Car
 

实现部分

@implementation Car

-(id) init{
	if(self=[super init]){
		engine=[Engine new];
		
		tires[0]=[Tire new];
		tires[1]=[Tire new];
		tires[2]=[Tire new];
		tires[3]=[Tire new];
	}	
	return (self);
	
}

-(void) print{
	NSLog(@"%@",engine);
	NSLog(@"%@",tires[0]);
	NSLog(@"%@",tires[1]);
	NSLog(@"%@",tires[2]);
	NSLog(@"%@",tires[3]);

}//print

@end //car

init方法会在对象内存分配后自动执行,使对象处于可用状态。

 

3.

if(self=[super init]){

?该句的作用是防止父类在初始化过程中返回的对象不同于原先创建的对象?

[super init]的返回值为一个id型数据,描述了被初始化的对象。

 

4.添加存取方法。setter/getter方法的写法:

   以

Engine* engine;

为例

-(Engine*) engine{
	return (engine);
}//engine

-(void) setEngine:(Engine*) newEngine{
	engine=newEngine;
}//setEngine

 objective-c中的getter方法为了避免和Cocoa中的用法混淆,不使用getxxx做为getter方法的前缀。get在Cocoa中有比较特殊的含义,一般使用get前缀的方法名,其他程序员认为这个方法需要将指针作为参数传入。

setter方法是以set作为前缀,这点和很多其他语言一样。

 

5.objective-C中所有对象间交互都通过指针来完成

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值