码迷,mamicode.com
首页 > 其他好文 > 详细

OC-方法

时间:2016-01-30 02:38:19      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

  1、类声明

@interface Person : NSObject
{ 
@public
    int _height; 
    int _weight;
    int _age;
}
// 如果你不想每次使用方法都需要创建对象开辟存储空间
// 并且如果该方法中没有使用到属性(成员变量), 那么你可以把这个方法定义为类方法
// 对象方法用对象调用  类方法用类调用

// 如果定义类方法, 类方法的写法和对象方法一模一样, 除了前面的-号不同以外,只需要将对象方法的-号换成+, 那么就定义了一个类方法
+ (int)sumWithValue1:(int)value1 andValue2:(int)value2;
- (int)sumWithValue1:(int)value1 andValue2:(int)value2;
@end

  2、类实现

@implementation Person

// 行为的实现
// 注意: 如果声明的是对象方法那么就必须实现对象方法
//      如果声明的是类方法那么就必须实现类方法

+ (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
- (int)sumWithValue1:(int)value1 andValue2:(int)value2
{
    return value1 + value2;
}
@end

  3、main函数

int main(int argc, const char * argv[]) {
    
    Person *p = [Person new];     // 通过类创建对象
    int sum0 = [p sumWithValue1:10 andValue2:20];  //调用对象方法
    int sum1 = [Person sumWithValue1:10 andValue2:20]; //调用类方法
    NSLog(@"sum0 = %i,sum1 = %i, sum0,sum1);    
    return 0;
}

  

  类方法和对象方法的区别
  0. 对象方法以-开头
    类方法以+开头
  1. 对象方法必须用对象调用
      类方法必须用类来调用
  2. 对象方法中可以直接访问属性(成员变量)
      类方法中不可以直接访问属性(成员变量)
  3. 类方法和对象方法可以进行相互调用

  类方法的应用场景:
     如果方法中没有使用到属性(成员变量), 那么能用类方法就用类方法
     类方法的执行效率比对象方法高

  

OC-方法

标签:

原文地址:http://www.cnblogs.com/weiyongjian/p/5170243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!