函数的方法定义和实现

很多Objective C的教程,都没能很好的讲解面向对象编程中,定义函数,参数,我今天画个图给大家讲一下。

 

方法实现的具体讲解

首先,我们先定义个class 的interface, interface是一个抽象层,我们的class里面有哪些方法,这里全都可以看到。@interface 是定义抽象的开始,@end是定义结束

需要注意,在interface 定义,你可能会看到+号,和减号-, 加号表示,这是个静态方法,不必要初始化实体,可以直接调用静态方法;而➖ 号开始,表示这是一个类的字方法,你得初始化类实体,然后才能调用类的具体方法。

interface里面的定义是怎样的,@implementation 实现中的方法名,参数也是得一致的,下面的示例代码会展示的很清晰。interface和implementation是严格对应的。

具体业务实现代码,是在@implementation 里面写代码。

类的方法,可以没有参数,也可以有多个参数。

类的方法,可以有返回结果,也可以不返回,不返回就是void

对于类的非静态方法,你得先初始化,然后再使用它

  SampleClass *sc = [[SampleClass alloc] init];
  //定义一个变量,它的结果是调用计算方法之后获得的return 结果
  int result = [sc calcTwoNumer:4 withNumB:16];

本教程帮大家梳理Objective-c 最初级的面向对象的基础编程原理。

最难的是理解函数定义,参数定义,以及传参。

你理解了定义参数是怎么定义的,调用函数就简单了 【方法名 参数1 参数二】

中间是空格隔开。这就是Objective-C跟其他编程语言不一样的设计。刚开始可能不太适应,但是你理解了它的玩法之后,看别人的Objective-C代码也不难了。

其他的语法特点,跟C就没什么两样了。。

 

完整代码如下:

//导入共用基础类库,类库叫Foundation.h 这个每个应用都需要引入
#import <Foundation/Foundation.h>
//定义一个类 名为SampleClass,扩展NSObject对象
@interface SampleClass : NSObject
//这个类有一个方法定义
- (void)sampleMethod;
//定义一个方法,计算两个int 参数的结果
- (int)calcTwoNumer: (int)a withNumB: (int)b;
@end
//实现上面的类的 interface
@implementation SampleClass
//实现SampleMethod方法的具体逻辑
- (void)sampleMethod {
    //打印字符串到命令行
    NSLog(@"I am test sampleMethod");
}
//计算方法的具体实现,注意,两个参数,执行相加之后,return返回,也是一个int
- (int)calcTwoNumer:(int)a withNumB:(int)b {
    return a+b;
}
@end
//程序主函数入口
int main(int argc, const char *argv[]) {
    //内存自动回收池的写法,注意用{} 符号包裹的是程序的主体
    @autoreleasepool {
        // 下面是具体代码,这两行是打印两行字符串
        NSLog(@"What is my name");
        NSLog(@"Hello, World!");

        //初始化类,如果要实用类,你得先初始化,注意初始化对象的方法,先alloc,然后init
        SampleClass *sc = [[SampleClass alloc] init];
        //调用方法,其实是给目标对象发送消息,让它知道要运行什么方法
        [sc sampleMethod];
        //定义一个变量,它的结果是调用计算方法之后获得的return 结果
        int result = [sc calcTwoNumer:4 withNumB:16];
        //打印我们最终的计算结果
        NSLog(@"calc two number result: %d", result);
    }
    //如果没有错误,程序返回exit code是0
    return 0;

}

分类: 默认 标签: 发布于: 2021-11-24 15:44:42, 更新于: 2021-11-24 15:44:42