1.Obj-C中函数的书写方式与其他风格语言不同。

C风格语言书写方式为:void func (int c);

Obj-C的书写方式为:-(void)func:(int)c; 这个函数的函数名为“func:”,多个参数就要跟多个冒号。

函数名的标签可以省略,但最好书写,因为这是对形参的一种描述。

2. 创建一个类的对象,OC中是不允许在栈里面声明类的的对象的,对象都是在堆中声明。

如,Dog类声明一个对象dog

Dog * dog=[Dog alloc];

在堆里声明一个Dog类的对象,将对象的地址,付给栈里的指针变量dog

3. 调用一个函数“func”,需要使用对象进行调用,如Dog类的对象dog,需要这样调用。

[dog func];

4. Obj-C规定所有以init开头的函数都是构造函数,返回值为指针类型。

-(Dog *)init;//这是没有参数的构造函数

构造函数的书写格式一般为:

-(Dog *)init

{

if(self=[surper init])//self相当于C++中的thissurper是指向父类的

{ //指针。这里调用根类的init

x=y=0;

}

return self;

}

5. OC没有真正的自调用的构造函数,故调用[surper init].

实例对象可看为两步,声明空间和构造函数init

1 Dog * dog=[Dog alloc]; 2 [dog init];

这两步可以合起来写为:Dog * dog=[[Dog alloc]init];

6. 带参数的构造函数,Obj-C中没有真正的构造函数,也没有真正的重载。仔细分析的话,有参和无参的构造函数函数名不同。

-(Dog *)initWithX:(int)newx AndY:(int)newY;这是带参的构造函数,实际上它的函数名为“initWithX: AndY:”。