您的位置:首页 > 其它

OC-类方法

2015-11-07 21:04 267 查看

 类方法

1. 基本概念

直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)

2. 类方法和对象方法对比

1)  对象方法

  • 以减号-开头
  • 只能让对象调用,没有对象,这个方法根本不可能被执行
  • 对象方法能访问实例变量(成员变量)

2)  类方法

  • 以加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能访问实例变量(成员变量)
  • 使用场合:当不需要访问成员变量的时候,尽量用类方法

3) 类方法和对象方法可以同名

 

#import <Foundation/Foundation.h>
@interface Person : NSOvject
//类方法
{
int age;
}
+ (void)printClassName;
@end

@implementation Person
+ (void)printClassName
{
//error : instance variable 'age' accessed in class method
//实例变量age不能在类方法中访问,即类方法不能访问成员变量
NSLog(@"这个类叫做Person--%d", age);
}
- (void)test
{
NSLog(@"调用了test方法");
[Person test];//可以调用方法
}
+ (void)test
{
NSLog(@"lei");
//[Person test]; 会引发死循环
}
@end

int main()
{
Person *p = [Person new];

[p printClassName];

[Person test];//只能用类调用类方法

return 0;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: