objective-c语言学习笔记

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cugwuhan2014/article/details/51834099

1、c语言风格函数申明

int add(int a, int b);

    oc语言为

(int)add:(int)a par2:(int) b;

函数名add也是第一个参数名称,第二个参数名称是par2,这样处理是为了实现函数的多态性。

2方法的定义和引用:
Object-C中的方法同其它面向对象语言一样,分两种方法:实例方法(-)和类方法(+)(静态方法)。
实例方法需要通过类的实例去调用,而静态方法可直接通过类名去调用。

1 - (void)insertObject:(id)anObject atIndex:(NSUInter)index;

上述代码中定义了一个名为"insertObject:atIndex"的实例方法,该方法无返回值,并定义了2个形参,类型分别为id和NSUInter。

 

类方法,也称静态方法,指的是用static关键字修饰的方法此方法属类本身的方法,不属于类的某一个实例(对象)。类方法中不可直接使用实例变量。其调用方式有三种:可直接调用、类名.方法名、对象名.方法名。实例方法指的是不用static关键字修饰的方法每个实例对象都有自身的实例方法,互相独立,不共享一个。其调用方式只能是对象名.方法名。 
用修饰符static声明的方法为静态方法,不用修饰符static声明的方法为实例方法不管类生成或未生成对象,类的静态方法都可以被使用,使用格式为:类名.静态方法名。静态方法只能使用该静态方法所在类的静态数据成员和静态方法。这是因为使用静态方法时,该静态方法所在类可能还没有对象,即使有对象,由于用类名.静态方法名方式调用静态方法,静态方法没有this指针来存放对象的地址,无法判定应访问哪个对象的数据成员。在类创建对象后,实例方法才能被使用,使用格式为:对象名.实例方法名。实例方法可以使用该方法所在类的所有静态成员和实例成员。

 

在定义一个方法时,也可以不指定参数名,如:

1 // 声明一个没有参数名的方法
2 -(int) set: (int) n: (int) d;
3 
4 // 方法调用
5 [object set : 4 : 5];

方法的调用:
在Object-C中,调用一个方法叫做发送消息,方法调用语句定义在中括号"[]"中:

1 [myArray insertObject:anObject atIndex:0];

为了避免生成大量的临时变量,Object-C允许嵌套调用方法,使一个方法的返回值当作另一个方法的参数,如:

1 [[myAppObject theArray] inserObject:[myAppObject objectToInsert] atIndex:0];

猜你喜欢

转载自blog.csdn.net/cugwuhan2014/article/details/51834099