Objective-C:拥有一些附加特性的C语言,或者称为C的扩展集.
在Xcode这个开发工具中可以支持ANSI C, Objective-C , C++语言编译,编译器是GCC.这个信息很重要个人认为.
- @interface Circle : NSObject
- {
- ShapeColor fillColor;
- ShapeRect bounds;
- }
- - (void) setFillColor: (ShapeColor) fillColor;
- - (void) setBounds: (ShapeRect) bounds;
- - (void) draw;
- @end
@interface Circle : NSObject //一个编译器要编译三种语言,总得弄区别标志符号出来吧
@ 这个符号就是告诉编译器,接下来的代码是Objective-C interface就是接口的意思
Circle : NSObject // : 这个符号也可以理解为Objective-C 的特有标识符,告诉编译器Circle类来自和继承NSObject类的特性.
- (void) setFillColor: (ShapeColor) fillColor;// - 又一个特有标识符,
(void) 表示该函数返回的类型是void型,
setFillColor 函数名, 在这里应该叫方法
: 表示向编译器开始传递参数
(ShapeColor) 参数类型名
fillColor 参数名
@end // 表示结束
整个函数等于C语言的 void setFillColor( ShapeColor fillColor);
整个代码感觉就像C语言中的函数和结构体申明.
函数(方法)申明之后,总得定义吧,下面是定义的代码
- @implementation Circle
- - (void) setFillColor: (ShapeColor) c
- {
- fillColor = c;
- }
- - (void) setBounds: (ShapeRect) b
- {
- bounds = b;
- }
- - (void) draw
- {
- NSLog(@"drwing a circle at (%d %d %d %d) in %@",bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillColor));
- }
NSLog() 相当C语言中的printf(),但编译器总得区别开,所以字符串前面加个@表示Objective-C的字符串
@implementation 表示类的实现
阅读(1779) | 评论(0) | 转发(0) |