黑马程序员 — OC (封装)

                                                                  ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

封装的作用:

                   1>   过滤内部不合理的值

                    2>  屏蔽内部的赋值过程

                    3>  隐藏内部的一些细节

1.  set 方法

             1>   作用:提供一个方法给外界设置成员变量值,可在方法里面对参数进行过滤

              2>   命名规范 :* 必须以set 开头。

                                           * set后面跟上成员变量的名称,成员的首字母必须大写。

                                           *  返回值一定是void。

                                           *  一定要接受一个参数,参数类型跟成员变量类型要一致。

                                           *   形参的名称不能跟成员变量名一样。

     get 方法

              1>   作用:返回内部的成员变量

                2>   命名规范: *  肯定有返回值,返回值的类型肯定与成员变量类型一致

                                             *  方法名跟成员变量名一样

                                             *  不需要接受任何参数

               代码示例:

                                    #import <Foundation/Foundation.h>

                                   //    类的声明

                                   @interface   Car  :NSObject

                                   {

                                            int   _wheels ;     //     定义成员变量-轮子   注意成员变量名的格式一般以下划线开头

                                    }



                                  //         set  方法

                                 -  (void)setWheels : ( int )wheels ;           //     无返回值    有参数 (参数与成员变量中的类型相一致)

                             


                                   //          get  方法

                                 -  (int ) wheels ;        //        有返回值 (返回值类型与成员变量中的类型相一致)    无参数

                                @end 



                                

                                @implementation   Car

                                 //      set   方法的实现

                                -  (void)setWheels:( int )wheels

                               {

                                         //    对外面传进来的成员变量轮子进行过滤(判断)

                                         if ( wheels <= 0 )                     //       设置所要过滤的值

                                         {

                                                     wheels = 1 ;

                                          }


                                          _wheels = wheels ;           //   把当前这个(外界传进来的)值传递到成员变量中


                               }


                               //            get   方法的实现

                                -  (int)wheels

                               {

                                           return  _wheels ;

                                }

                                @end 

2.类的方法

          概念:直接可以用类名来执行的方法,类自身会存储于内存中,里面有类\对象方法列表。

                类方法和对象方法的比较

          对象方法  :                                                                                   类方法

             以减号 “  - ” 开头                                                                           以加号 “ + ” 开头  

            只能让对象调用,没有对象,这个方法则不能被执行                   只能让类名调用,对象不能调用

            对象方法能访问实例变量(成员变量)                                         类方法中不能访问实例变量(成员变量)

                                                                                            使用场合: 当不需要访问成员变量的时候,尽量用类方法

                                                                                             注意 :类方法可以和对象方法重名

3. self关键字

                 1>   使用场合:  适合于OC中所有的方法(对象方法\类方法),不能出现于函数中。

                  2>  作用:可使用 “ self—>成员变量名 ” 使用当前方法调用的成员变量。

                               使用“  [ self   方法名 ] ” 来调用方法(对象方法\类方法)。

                    3>   当成员变量和局部变量重名时,采取就近原则,访问的是当前的局部变量。

                             访问成员变量时,  注意区分同名的局部变量。

程序示例:

                     #import <Foundation/Foundation.h>


                @interface   Dog : NSObject

                 - ( void ) run ;     //   定义对象方法:跑

                 -  ( void )bark ;   //   定义对象方法 :叫

                 @end



                 @implementation   Dog


                 - ( void ) bark

                 {

        NSLog( @ " 狗叫起来了 " ) ;

                  }


                 -  ( void ) run

                  {

                          [ self  bark ]  ;    //     self这时会访问当前对象的方法


                           NSLog (@ " 狗跑远了 " ) ;

                    }

                    @end


                  int   main( )

                  {

        Dog   *p = [ Dog   new ] ;


                        [ p     run]  ;   //   执行到这一步指针先访问对象的run方法,再在run里面访问bark  输出为:狗叫起来了

                                                                                                                                                                                              狗跑远了

                        return  0  ;


                      }


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值