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

objective-c 基本语法(ObjectiveC细节讲解)(1)

方法实现的具体讲解

首先,我们先定义个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; }

,