------ Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------
http://www.itheima.com
- 类方法概念:用类调用的方法,不需要依赖于对象。
- 类方法的调用:[类名称 类方法名称]; 例如:[Person run]; 该条语句就实现了Person类对类方法run的调用。
- 类方法的使用:
1.类方法与对象方法同名时以“+”、“-”来区分,例如:
//类方法
+(void)run;
//对象方法
-(void)run;
2.类方法中不可以访问实例变量,例如:
+(void)run{
//在类方法中不允许访问实例变量,下面的语句访问了实例变量_speed,编译时报错.
NSLog(@"车正在以%d码的速度跑",_speed);
}3.类方法中可以调用其它类方法,例如:
+(void)run{
//类方法可以调用其他类方法
NSLog(@"生命在于运动!");
[Person eat];
}
4.类方法不能调用它自身,例如:在下面的代码中如果在main函数中用Person类调用了类方法run,而在run方法的实现中又出现[Person run],这样做得结果会使程序陷入死循环。
+(void)run{
//类方法可以调用其他类方法
NSLog(@"生命在于运动!");
[Person run];
5.在类方法中可以调用对象方法,例如:+(void)run:(Dog *)dog{
//对象作为类方法的参数传递过来
[dog eat];
}
+(void)run{
NSLog(@"生命在于运动!");
//通过创建一个对象来调用对象方法
Dog *d = [Dognew];
[d eat];
}
- set方法的使用规范:
- get方法使用规范
@interface Person : NSObject
{
NSString *_name
int _age;
}
//set方法的声明
-(void)setName:(NSString *)name;
-(void)setAge:(int)age;
//get方法的声明
-(NSString *)name;
-(int)age;
@end
@implementation Person
//_name的set方法的实现
-(void)setName:(NSString *)name{
//给实例变量赋值
_name = name;
}
//_age的set方法的实现
-(void)setAge:(int)age{
//给实例变量赋值
_age = age;
}
//_name的get方法的实现
-(NSString *)name{
//返回实例变量值
return _name;
}
//_age的get方法的实现
-(int)age{
//返回实例变量值
return _age;
}