黑马程序员-ios学习笔记 oc 封装

本文详细阐述了Java封装的概念、作用以及实现步骤,包括设置器和访问器方法的定义、命名规范、声明与实现,通过实例展示了如何在类中应用封装,并提供了方法调用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. ------<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;
}




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值