与C语言相比要注意的地方:
1. 文件介绍:Objective-C 也使用头文件(header files),后缀为 .h, 但使用 .m(即 message, 其他面向对象编程语言也叫 method),作为源文件的后缀。
在objective-c中使用#import<>,而不使用#include<>,#import可以保证头文件只被包含一次。
2. 与C一致的地方:
数据类型,表达式,各种运算符
循环:for, while, do while, break, continue
分支:if, else, switch
3. NSlog()函数:与printf()类似,想控制台输出信息。但它增加了一些特性,如时间戳等。
【cocoa对起所有的函数,常量和类型名称都添加了NS前缀。】
4. 双引号的前面的@表示这双引号中的字符串应该作为cocoa的NSString元素来处理。
5. 布尔类型BOOL:值为YES,NO;
6. %d表示输出整数
%@表示输出NSString类型
%s表示输出字符串数组(char*)
7. objective-c中的方括号:
1. 用于通知某个对象该做什么。
2. 方括号内第一项是对象,其余部分是你需要对象执行的操作。
3. 在objective-c中通知对象执行某种操作,称为发送消息。(也叫调用方法)
8. 标识符id:是一种泛型,用于表示任何种类的对象
9. 类声明@interface:
@interface Circle:NSObject //为Circle类定义接口;NSObject表示是父类。
{//以下是数据成员
ShapeColor fillColor;
ShapeRect bounds;
}
//以下是方法声明
-(void) setFillColor: (ShapeColor) fillColor; //前面的短线表明这是方法声明
//短线后面是方法的返回类型
//接着是方法名
//冒号后面是参数,其中(ShapeColor)是参数类型,
fillColor是参数名
-(void) setBounds:(ShapeRect) bounds;
-(void) draw;
//减号就是普通函数
加号就是静态函数
@end //结束声明
objective-c看到@符号,就把它看成是C语言的扩展。
一个类的完整声明如下:
@interface CClassA(Category): CBaseClass<IA,IB...>
//类名(类别名):父类<协议>
10. 类实现@implementation
@impleentation
@implementation Circle
-(void) setFillColor: (ShapeColor) c
{
fillColor=c;
}
-(void) draw
{
NSLog(@”drawing a circle at(%d %d %d %d) in %@”, bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillName));
}
@end
隐藏对象self对应于C中的this。
Self->fillcolor来访问成员变量。
11. 调用写好的类和类函数:
//创建新对象,使用缺省初始化函数
Bank *bankDefault = [[Bank alloc] init];
//调用方法:
[bank addAmount: 1];
[bank print];
// 释放对象:
[bankDefault free];
12. 两个参数的方法:
-(void) setTire: (Tire *) tire //声明
atIndex: (int) index;
//使用
[car setTire:tire atIndex:2];
1. 文件介绍:Objective-C 也使用头文件(header files),后缀为 .h, 但使用 .m(即 message, 其他面向对象编程语言也叫 method),作为源文件的后缀。
在objective-c中使用#import<>,而不使用#include<>,#import可以保证头文件只被包含一次。
2. 与C一致的地方:
数据类型,表达式,各种运算符
循环:for, while, do while, break, continue
分支:if, else, switch
3. NSlog()函数:与printf()类似,想控制台输出信息。但它增加了一些特性,如时间戳等。
【cocoa对起所有的函数,常量和类型名称都添加了NS前缀。】
4. 双引号的前面的@表示这双引号中的字符串应该作为cocoa的NSString元素来处理。
5. 布尔类型BOOL:值为YES,NO;
6. %d表示输出整数
%@表示输出NSString类型
%s表示输出字符串数组(char*)
7. objective-c中的方括号:
1. 用于通知某个对象该做什么。
2. 方括号内第一项是对象,其余部分是你需要对象执行的操作。
3. 在objective-c中通知对象执行某种操作,称为发送消息。(也叫调用方法)
8. 标识符id:是一种泛型,用于表示任何种类的对象
9. 类声明@interface:
@interface Circle:NSObject //为Circle类定义接口;NSObject表示是父类。
{//以下是数据成员
ShapeColor fillColor;
ShapeRect bounds;
}
//以下是方法声明
-(void) setFillColor: (ShapeColor) fillColor; //前面的短线表明这是方法声明
//短线后面是方法的返回类型
//接着是方法名
//冒号后面是参数,其中(ShapeColor)是参数类型,
fillColor是参数名
-(void) setBounds:(ShapeRect) bounds;
-(void) draw;
//减号就是普通函数
加号就是静态函数
@end //结束声明
objective-c看到@符号,就把它看成是C语言的扩展。
一个类的完整声明如下:
@interface CClassA(Category): CBaseClass<IA,IB...>
//类名(类别名):父类<协议>
10. 类实现@implementation
@impleentation
@implementation Circle
-(void) setFillColor: (ShapeColor) c
{
fillColor=c;
}
-(void) draw
{
NSLog(@”drawing a circle at(%d %d %d %d) in %@”, bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillName));
}
@end
隐藏对象self对应于C中的this。
Self->fillcolor来访问成员变量。
11. 调用写好的类和类函数:
//创建新对象,使用缺省初始化函数
Bank *bankDefault = [[Bank alloc] init];
//调用方法:
[bank addAmount: 1];
[bank print];
// 释放对象:
[bankDefault free];
12. 两个参数的方法:
-(void) setTire: (Tire *) tire //声明
atIndex: (int) index;
//使用
[car setTire:tire atIndex:2];