前言
Objective-C是一门面向对象语言,是对于C语言的扩展。面向对象编程又是学习Objective-C的重中之重,但是刚入门学习时,容易被Objective-C的语法规范搞糊涂。本文尝试用倒叙的手段,由深入浅的学习Objective-C,可能更容易被读者接受,尤其是针对有着一定编程经验的读者。
@interface部分
接口(@interface)是类为对象提供特性描述。在@interface 中我们可以声明对象的数据成员、属性、以及方法。
示例:
@interface AllWeatherRadial
{
float rainHandling;
float snowHandling;
}
- (void) setRainHanding: (float) rainHanding;
- (float) rainHandling;
- (void) setSnowHanding: (float) snowHanding;
- (float) snowHandling;
@end
以上代码就是通过@interface指令为对象AllWeatherRadial声明函数以及数据成员。
@implementation部分
在@implementation中,我们用来写使得接口能够正常工作的代码。用我的话说用作实现@interface定义的方法,真正使程序能够运行在@implementation里。
注意:在@implementation中,我们不必按顺序实现接口中定义的方法,也可以在其中定义@interface本没有的方法以及数据成员。但是一旦在@implementation中声明了某个方法,那么这个方法就是当前对象的私有方法,无法被子类继承。
示例:
@implementation AllWeatherRadial
- (void) setRainHanding:(float) rh
{
rainHandling = rh;
}
- (float) rainHandling
{
return (rainHandling);
}
- (void) setSnowHanding:(float) sh
{
snowHandling = sh;
}
- (float) snowHandling
{
return (snowHandling);
}
@end
我想经验丰富的读者早已看出,通过@implementation实现了对rainHandling和snowHandling两个数据成员进行get和set,读写操作的实现。
属性
刚才的代码想必太过繁琐,Objective-C 2.0中引入了属性。属性的出现使得Objective-C代码更加简洁,带来的好处是bug更少,工作效率更高。
让我们来看示例代码: