- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
oc封装
一、封装的定义:使实例变量隐藏起的做法;将数据隐藏起来,只能用此类的方法函数才可以访问或者设置数据,不可被外部任意存储,是面向对象设计本质,降低了数据被无用的可能性。
作用:使用更加简单,变量更加安全,加快了开发速度。
二、封装实现的步骤
定义设置实例变量(setter)方法 访问实例变量(getter)方法
1、setter方法(设置器)
1)setter方法的作用:为外界提供一个设置成员变量的方法
2)命名规范:(1)方法名必须以set开头;
(2)set后面跟上成员变量的名称,首字母大写;
(3)返回值一定是void;
(4)一定要接收一个参数,而且参数类型需要和成员变量的类型一致;
(5)形参名不能和成员变量名一样
3)方法声明格式:+或-(void)set成员变量去掉下划线并首字母大写:(参数类型)形参名;
方法实现格式:+或-(void)set成员变量去掉下划线并首字母大写:(参数类型)形参名{
成员变量=形参名;}
注:形参名一般为去掉下划线的成员变量。
如:-(void)setName:(NSString*)name;
-(void)setName:(NSString*)name{
_name=name;}
3)set方法的好处:不让数据暴露在外,保证了数据的安全性,对设置的数据进行过滤。
2、getter方法(访问器)
1)getter方法的作用:为调用者返回对象的成员变量
2)命名规范:(1)一定有返回值,返回值类型和成员变量类型一致;
(2)方法名和成员变量名一样(去掉下划线的成员变量名);
(3)不需要接收任何参数
3)方法声明格式:+或-(参数类型)形参名;
方法实现格式:+或-(参数类型)形参名{
return 成员变量;}
如:-(NSString*)name;
-(NSString*)name{
return _name;}
例:
声明部分:
@interface Animal : NSObject
{
NSString *_name;
int _age;
}
-(void)setName:(NSString*)name; //set方法声明
-(NSString*)name; //get方法声明
-(void)setAge:(int)age; //set方法声明
-(int)age; //get方法声明
@end
实现部份:
@implementation Animal
-(void)setName:(NSString*)name{ //set方法的实现
_name=name;}
-(NSString*)name{ //get方法的实现
return _name; }
-(void)setAge:(int)age{ //set方法的实现
_age=age;}
-(int)age{ //get方法的实现
return _age;}
@end
3、方法的调用
1)set方法的调用:[指针变量名 set方法名:实际参数];
2)get方法的调用:[指针变量名 方法名];
int main(int argc, const char * argv[]) {
@autoreleasepool {
Animal *animal=[Animal new];
[animal setName:@"兰兰"]; //调用set方法
[animal name]; //调用get方法
[animal setAge:18]; //调用set方法
[animal age]; //调用get方法
NSLog(@"Age=%d,Name=%@\n",animal.age,animal.name);
}
return 0;
}
- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------