Objective-C方法与函数的区别

页面导航:首页 > 软件编程 > C#教程 > Objective-C方法与函数的区别

Objective-C方法与函数的区别

来源: 作者: 时间:2016-01-15 14:58 【

Objective-C方法与函数的区别方法是唯对象所有函数是不依赖于对象存在的 方法 函数 - (void)test; void test(); 方法是以减号 - 开头 - 类型要用()括起来

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查看方法名也很方便
这里写图片描述

 
Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<