objective-c 基本语法(ObjectiveC细节讲解)
很多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;
}
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com