黑马程序员技术交流社区
标题: OC基础学习笔记 封装性setter和getter方法 [打印本页]
作者: zhecipinle 时间: 2015-11-9 16:24
标题: OC基础学习笔记 封装性setter和getter方法
1、setter方法
作用:为外界提供设置成员变量赋值的方法。使变量不可以被外部任意访问和修改,不使用给成员变量@public,提高安全性。
命名规范:返回类型为void空类型。方法名用set开头之后写名字(去掉下划线),名字首字母大写。必须由接收参数,且参数的类型必须与相应变量的类型相同,参数名不要和成员变量名称重复。
2、getter方法
作用:为外界提供显示内部成员变量的方法。也是使变量不可以被外部任意访问和修改,不使用给成员变量@public,提高安全性。
命名规范:必须有返回值,且返回值类型和相应成员变量相同。方法名与成员变量相同(去掉下划线),不需要接收参数。
例:在Person类中
Person.h声明头文件
#import <Foundation/Foundation.h>
typedef enum{kSexMan,kSexWoman} Sex;//声明性别Sex的枚举类型
@interface Person : NSObject
{
NSString *_name;
int _age;
Sex _sex;
float _height;
}
//声明set方法
-(void)setName:(NSString*)name;
-(void)setAge:(int)age;
-(void)setSex:(Sex)sex;
-(void)setHeight:(float)height;
//声明get方法
-(NSString *)name;
-(int)age;
-(Sex)sex;
-(float)height;
@end
Person.m实现文件
#import "Person.h"//必须调用Person.h的头文件
@implementation Person
//实现set方法
-(void)setName:(NSString*)name{
_name = name;
}
-(void)setAge:(int)age{
_age = age;
}
-(void)setSex:(Sex)sex{
_sex = sex;
}
-(void)setHeight:(float)height{
_height = height;
}
//实现get方法
-(NSString *)name{
return _name;
}
-(int)age{
return _age;
}
-(Sex)sex{
return _sex;
}
-(float)height{
return _height;
}
@end
main.m执行程序中
#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [[Person alloc]init];//对象实例化
//用setter方法为对象赋值
[p setName:@"张三"];
[p setAge:25];
[p setSex:kSexMan];
[p setHeight:180.0f];
//用getter方法访问成员变量
NSLog(@"姓名:%@,年龄:%d,性别:%d,身高:%.2f",[p name],[p age],[p sex],[p height]);
}
return 0;
}
注意:1)setter和getter方法均为对象方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |