——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-
getter与setter方法是为了保护我们类的成员变量,保证成员变量的值的受当前类的控制。在OC中,获得与设置成员变量的值应使用getter & setter方法。
set方法定义规范:
1)set方法一定是一个对象方法
2)set方法一定没有返回值
3)set方法必须以set开头
4)set之后跟的是实体变量去掉下划线,并且首字母大写
5)set方法一定有参数,而且数据类型与实体变量相同
6)set方法的形参名称一般是:实体变量去掉下划线
7)形参名不能和实体变量名同名
8)set方法实现中,一定要用形参给实例变量赋值
定义一个类Person。在Person.h中,代码如下:
#import <Foundation/Foundation.h>
typedef enum {sexMale, sexFemal, sexBoth} Sex;
@interface Person : NSObject
{
float _height;
Sex _sex;
int _age;
NSString *_name;
}
-(void)setHeight:(float)height;
-(void)setSex:(Sex)sex;
-(void)setAge:(int)age;
-(void)setName:(NSString *)name;
/*
get方法定义规范
1)get方法也是一个对象方法
2)get方法一定有返回值,返回值的类型与实例变量的类型一致
3)get方法名是 去掉下划线的实例变量名
4)get方法一定没有参数
5)get方法的实现,一定是返回实例变量值
*/
-(float)height;
-(Sex)sex;
-(int)age;
-(NSString *)name;
@end
在实现方法的Person.m文件中,代码如下:
#import "Person.h"
@implementation Person
//set方法实现
-(void)setHeight:(float)height{
_height = height;
}
-(void)setSex:(Sex)sex{
_sex = sex;
}
-(void)setAge:(int)age{
_age = age;
}
-(void)setName:(NSString *)name{
_name = name;
}
//get方法实现
-(float)height{
return _height;
}
-(Sex)sex{
return _sex;
}
-(int)age{
return _age;
}
-(NSString *)name{
return _name;
}
@end
主函数main()代码:
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [Person new];
[p setName:@"Tom"];
[p setHeight:1.90f];
[p setAge:29];
[p setSex:2];
NSLog(@"_name = %@, height = %.2f, age = %d, sex = %d", [p name], [p height], [p age], [p sex]);
}
return 0;
}