在(一)中已经说过,Objective C的语言特性继承了C的特点,这些也不用赘叙,动手写代码自然会领会。
还是直接上手objective C的面向对象特性。
在创建类之前用@interface标记传递给编译器信息:下面将定义一个类了
先看一个类的声明实例:
@interface Circle:NSObject//表示此类继承于NSObject
{
ShapeColor fillColor;//类的属性成员
ShapeRect bounds;
}
- (void)setFillColor:(ShapeColor)fillColor;//类的成员函数定义
- (void)setBounds:(ShapeRect)bounds;
- (void) draw;
@end;//非必须,但为了代码风格,建议加上
成员函数定义前要加一根横线“-”, 需要参数的函数才能加“:”冒号,无参函数不能加冒号。
再来看看类的实现部分:
@implementation Circle//@interface, @implementation等编译器指令不需要加分号
- (void)setFillColor:(ShapeColor)c
{
fillColor = c;
}
- (void)setBounds:(ShapeRect)b
{
bounds = b;
}
- (void) draw
{
NSLog(@"drawing a circle at (%d %d %d %d) in %@ ", bounds.x, bounds.y, bounds.width, bounds.height, colorName(fillColor))
}
@end
objective C中可以把类当作对象来传递。