OC开发之——类方法(16)

一 概述

我们前几节课学的对象方法是以-开头,先创建好对象,然后调用减号开头的对象方法;本文介绍类方法,类方法不用创建对象,直接类名调用,且方法开头标示是+号。

二 代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <Foundation/Foundation.h>
@interface Person:NSObject
{
int age;
}
+(void)printClassName;
-(void)test;
+(void)test;
@end
@implementation Person
+(void)printClassName
{
NSLog(@"这个类叫做Person");
}
-(void)test
{
//NSLog(@"调用了对象方法———————test");
[Person test];
}
+(void)test
{
NSLog(@"调用了类方法+++++++++test");
}
@end
int main()
{
//[Person test];
//[Person printClassName];
Person *p=[Person new];
[p test];
return 0;
}

三 总结

3.1 对象方法

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

3.2 类方法

  • 加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能访问成员变量(实例变量)

3.3 类方法的好处和使用场合

  • 不依赖于对象,执行效率高
  • 能用类方法尽量用类名调用
  • 场合:当方法内部不需要使用到成员变量时,就可以改为类方法