Objective - C基础: 第一天 - 11.OC方法的基本认识

前面我们学习了怎么设计一个合理的类, 这次我们来讲解一些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;
}




而多个参数也是如此用" : "号分开, 但必须注意一点, apple公司的建议写法是在参数前添加描述, 越详细越好, 比如:

声明:

- (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;
}




好了, 这次我们就讲到这里, 下次我们继续~~~



posted @ 2015-01-14 23:11  背着吉他去流浪  阅读(168)  评论(0编辑  收藏  举报