黑马程序员技术交流社区

标题: OC中的类方法与对象方法 [打印本页]

作者: itheimaXYP    时间: 2014-8-17 17:05
标题: OC中的类方法与对象方法
本帖最后由 itheimaXYP 于 2014-8-18 18:34 编辑

类方法

1、类方法以+开头。
+ (void) show;
2、只能由类名或类对象来调用。
[Person show];

Class personClass = [Person class];
[personClass show];
3、类方法中不能访问成员变量(实例变量)。
类在加载的时候还没有对象,故没有实例变量,所以类方法不能访问成员变量。

对象方法
1、对象方法以-开头。
- (NSString *) name;
2、只能由对象来调用。
Person *p = ...;
NSString *name = [p name];
3、对象方法中能访问当前对象的成员变量(实例变量)。
- (void) setName:(NSString *) name
{
        self->_name = name;
}

在一个类中对象方法和类方法可以重名
@interface Person : NSObject
+ (void) show;
- (void) show;
@end

@implementation Perosn
+ (void) show
{
        NSLog(@"Person类方法");
}
- (void) show
{
        NSLog(@"Person对象方法");
}
@end




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2