C语言:全局函数
例如:NSLog
面向对象OC:成员函数(方法)
定义方法
-(实例方法)(返回值类型)函数名称:(参数类型)参数名称
+(类型方法)
使用方法
默认为公有方法,不支持私有方法
动态消息分发(向对象发送消息):
实例方法:[对象名 方法名:参数];
实例方法只能通过实例调用,类型方法只能通过类型调用。
实例方法中访问其他实例方法[self 方法名];或类型方法,但类型方法中不能访问实例方法
静态变量在两种方法中都能访问
self指针:类型方法里的self表示当前的类,实例方法里的self表示当前的实例对象。
对实例方法来说,传递了实例对象的指针;对类型方法来说,只表示当前类,并不表示实例
函数参数
值类型:传值,对外界无影响
引用类型(指针):传指针,对外界有影响
方法名即为第一个参数名
两个不同的方法取决于外部方法名,不在于参数名
方法动态调用机制
(支持嵌套调用)
对象-》method list-》具体方法名
优点:灵活,运行时可以添加方法
缺点:有性能损失