黑马程序员——OC之类方法与set、get方法

来源:互联网 发布:网络没问题lol连不上 编辑:程序博客网 时间:2024/06/03 18:45

------  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方法的使用规范:
1.set方法一定是一个对象方法;
2.set方法一定不能有返回值;
3.set方法必须以set开头;
4.set之后跟的是去掉下划线的实例变量名,并且首字母大写;
5.set方法一定有参数,而且参数的类型和实例变量的类型一致;
6.set方法的形参名一般是去掉下环线的实例变量名;
7.形参名不能和实例变量名同名;
8.set方法实现中,一定要用形参给实例变量赋值。
  • get方法使用规范
1.get方法一定是一个对象方法;
2.get方法一定有返回值,返回值的类型和实例变量的类型要一致;
3.get方法的方法名是去掉下环线的实例变量名;
4.get方法一定没有参数;
5.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

//_nameset方法的实现

-(void)setName:(NSString *)name{

    //给实例变量赋值

    _name = name;

}

//_ageset方法的实现

-(void)setAge:(int)age{

    //给实例变量赋值

    _age = age;

}

//_name的get方法的实现

-(NSString *)name{

   //返回实例变量值

   return _name;

}

//_age的get方法的实现

-(int)age{

   //返回实例变量值

    return _age;

}




0 0