黑马程序员---成长之路-----OC之基础篇封装

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流!



封装

OC是一门面向对象的语言,而面向对象有三大特性:封装(成员变量)、继承和多态。在OC语言中,使用@interface和@implementation来处理类。@interface是OC语言暴露在我们面前的,@implementation里的实现是隐藏起来的,把具体的实现封装起来。为什么要封装呢?其实当一个类把自己的类暴露给外部的时候,该类及失去了对属性的管理权。封装起来的不可被外部任意存储是面向对象的本质。

如何实现封装,其实是通过set和get方法,下面我们详细的介绍下这两张方法。

Set方法的作用:为外界提供一个设置成员变量值的方法

 命名规范:  


(1)set方法一定是一个对象方法

(2)方法名必须以set开头  

(3)Set后面跟上去掉下划线的成员变量的名称,首字母大写  

(4)一定没有返回值

(5)一定要接收一个参数,而且参数类型需要和成员变量的类型一致  

(6)set方法的形参名一般是去掉下划线的实例变量名

(7)形参名不能和成员变量名一样(苹果官方推荐成员变量名前加_以示区分)  

Set方法的好处: 

 (1)不让数据暴露在外,保证了数据的安全性  

(2)对设置的数据进行过滤 

 Set方法使用示例:

#import<Foundation/Foundation.h>
@interface Person : NSOcject
{

         //这里不再使用@public关键字
          int _age;


}
//set方法的声明,接受一个参数
-(void)setAge:(int)age;
-(void)print;
@end
@implementation Person
//set方法的实现
-(void)setAge:(int)age{

         _age=age;
}
-(void)print{

         NSLog(@"age=%d",_age);
}
@end
int main(int argc,const char * argv[])
{
          Person *p=[Person new];
          [p setAge:10];
          [p print];
          return 0;


}

get 方法的作用:为调用者返回对象内部的成员变量

命名规范

(1)一定有返回值,返回值的类型和成员变量的类型一致  

(2)方法名是去掉下划线的成员变量名  

(3)不需要接收任何参数

(4)一定是个对象方法

(5)get方法实现中一定是返回实例变量值

get方法的示例:

#import<Foundation/Foundation.h>
@interface Person : NSOcject
{

         //这里不再使用@public关键字
          int _age;


}
//set方法的声明,接受一个参数
-(void)setAge:(int)age;
//声明get方法
-(int)age;
@end
@implementation Person
//set方法的实现
-(void)setAge:(int)age{

         _age=age;
}
//get方法的实现
-(int)age{

         return _age;
}
@end
int main(int argc,const char * argv[])
{
          Person *p=[Person new];
          [p setAge:10];
          NSLog(@"%d",[p age]);
          return 0;


}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值