前面我们学习了怎么设计一个合理的类, 这次我们来讲解一些OC方法, 在之前的例子里, 我们也用过方法, 但对方法的印象不深, 方法还有什么用途呢? 下面让我们来一起看看~~
首先我们来看一个例子:
#import <Foundation/Foundation.h> @interface Preson : NSObject { @public int age; } - (void)print; @end @implementation Preson - (void)print { NSLog(@"小明今年%d岁.", age); } @end int main() { Preson *p = [Preson new]; p->age = 20; [p print]; return 0; }
里面的方法声明, 方法实现都分别写在@interface和@implementation里, 而调用代码则是在main()函数里, 如果我需要一个计算平方的算法呢? 在OC中的方法和C语言的函数就又一定的写法区别了, 比如方法名和参数是以 " : "号分开, 比如:
声明:
- (int)chengji:(int)n;实现:
- (int)chengji:(int)n { return n * n; }
声明:
- (int)addition:(int)n addN:(int)n1;实现:
- (int)addition:(int)n addN:(int)n1 { return n + n1; }
PS: 注意, 参数和描述必须以空格分开, 不然参数名和描述就会混在一起, 编译器会报错, 而且, 只有addition: addN: 这样子才是完整的方法名.
完整的代码:
#import <Foundation/Foundation.h> @interface Preson : NSObject { @public int age; } - (void)print; - (int)addition:(int)n addN:(int)n1; @end @implementation Preson - (int)addition:(int)n addN:(int)n1 { return n + n1; } - (void)print { NSLog(@"小明今年%d岁.", age); } @end int main() { Preson *p = [Preson new]; p->age = 20; [p print]; int a = [p addition:10 addN:20]; NSLog(@"%d", a); return 0; }
好了, 这次我们就讲到这里, 下次我们继续~~~