您的位置:首页 > 移动开发 > Objective-C

Objective-C方法与函数的区别

2016-01-06 11:24 627 查看

Objective-C方法与函数的区别

方法是唯对象所有

函数是不依赖于对象存在的

方法函数
- (void)test;void test();
方法是以减号 - 开头-
类型要用()括起来-
声明必须写在@interface-@end之间,实现必须写在@implementation-@end之间可以写在文件中的任意位置
只能由对象来调用-
可以直接访问成员变量不可以直接访问成员变量

Objective-C成员方法与类方法的区别

成员方法是以减号 “-” 开头

类方法是以加号 “+” 开头

成员方法类方法
- (void)test;+ (void)test;
成员方法必须使用对象调用

类方法可以直接使用类名调用

总结

OC成员方法就好比Java里的非静态方法,需要使用对象调用

OC类方法就好比Java里的静态方法(static),可以使用类名直接调用

一般工具类使用类方法比较多

带有返回值的方法

Objective-C

声明

@interface NumUtil : NSObject
- (double)pi;
@end


实现

@implementation NumUtil
- (double)pi
{
return 3.14;
}
@end


调用

NumUtil *n = [NumUtil new];
NSLog(@"%f",[n pi]);


Java

Java类


大概是这样



public class NumUtil{
public double pi(){
return 3.14;
}
}


调用

NumUtil numUtil = new NumUtil;
numUtil.pi();


带有一个参数的方法

Objective-C

声明

@interface NumUtil : NSObject
- (int)square:(int)num;
@end


实现

@implementation NumUtil
- (int)square:(int)num;
{
return num * num;
}
@end


调用

NumUtil *n = [NumUtil new];
NSLog(@"%d",[n square:2]);


Java

Java类


大概是这样



public class NumUtil{
public int square(int num){
return num * num;
}
}


调用

NumUtil numUtil = new NumUtil;
numUtil.square(2);


带有多个参数的方法

Objective-C

声明

@interface NumUtil : NSObject
- (int)addNum1:(int)num1 addNum2:(int)num2;
@end


实现

@implementation NumUtil
- (int)addNum1:(int)num1 addNum2:(int)num2
{
return num1 + num2;
}
@end


调用

NumUtil *n = [NumUtil new];
NSLog(@"%d",[n addNum1:1 addNum2:2]);


Java

Java类


大概是这样



public class NumUtil{
public int add(int num1, int num2){
return num1 + num2;
}
}


调用

NumUtil numUtil = new NumUtil;
numUtil. add(1, 2);


注意

Objective-C方法名的问题


OC的方法名,和Java有些不同,Java很好理解

OC也不难理解,只是习惯了Java的那种命名方式,看到OC有点不适应

举个例子:



- (double)pi;


这个很好理解,方法名就是 pi



- (int)square:(int)num;


带参数的方法名有点特殊了

首先说冒号“:”,冒号后面的一定是参数

可以理解成,有几个冒号,就有几个参数

空格后面参数前面的内容拼起来(不算类型),就是方法名

那么,这个方法的方法名就是square:,(注意:是有冒号的)



- (int)addNum1:(int)num1 addNum2:(int)num2;


根据上面的方法

这个方法的方法名就是 addNum1:addNum2:

其实很好理解,就是把每个参数的描述加上冒号拼接到一块,组成方法名,方便阅读




XCode查看方法名也很方便



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: