黑马程序员----OC三大特征

面向对象的三大特征:封装、继承、多态


一、 封装(成员变量的封装)


set方法和get方法


   set方法(能修饰内部变量)


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


  2、 命名规范:    1>  方法名必须以set开头


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


                          3>  返回值一定是void类型


                          4>  一定要接收一个参数,而且参数类型跟成员变量类型一致


                          5>  形参名称不能跟成员变量名称一致


   get方法(只能访问,不能修改)


  1、作用:返回对象内部的成员变量


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


                        2> 方法名与成员变量名一致


                        3> 不需要接收任何参数


成员变量


     成员变量的命名规范: 成员变量都以下划线_开头


     作用:1> 可以跟get方法的名称区分开


             2> 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量


封装的好处


   1> 过滤不合理的值


   2> 屏蔽内部的赋值过程


              3> 让外界不必关注内部的细节


类方法和对象方法对比


1> 类方法


      1以加号+开头


      2只能用类名调用,对象不能调用


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


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


2> 对象方法


1以减号-开头


2只能让对象调用,没有对象,这个方法根本不可能被执行


3对象方法能访问实例变量(成员变量)


3> 类方法和对象方法可以同名


Self:指向了方法调用者(为指向指针),代表当前对象


self访问成员变量,区分同名的局部变量


1、使用细节


 出现的地方:所有的OC方法中(对象方法\类方法),不能出现在函数


 :


      "self->成员变量名访问当前方法调用的成员变量


      "[self 方法名];"   来调用方法(对象方法\类方法)


2、常见错误


    低级错误:用self去调用函数


    类方法中用self调用对象方法,对象方法中用self调用类方法,使self死循环


二、继承


   1. 继承的好处:


       1> 抽取了重复代码


       2建立了类与类之间的联系


  2. 子类可以拥有父类中的所有成员变量和方法


  3. 基本上所有类的根类都是NSObject


  4. 注意点:


   1)不允许子类和父类拥有相同的成员变量


   2)父类放在子类之前声明


   3)子类和父类允许有相同的方法


   4)调用某个对象的方法时,优先去当前类中找,如果找不到,再去父类中找


   5)子类重新实现父类的某个方法,会覆盖父类以前的方法


   5. 每个类中都有一个superclass指针指向父类


   6. 继承的缺点:耦合性太强(类与类之间的关系过于紧密)


   7. 继承和组合


       继承:XX XXX


       组合:XX拥有XXX (格式 : score  *_score


  8.继承的使用场合


     它的所有属性都是你想要的,一般就继承


     它的部分属性是你想要的,可以抽取出另一个父类


super关键字


   1> 可以直接调用父类中的方法


   2> super处在对象方法中,就会调用父类的对象方法。处在类方法中,那么就会调用父类的类方法


   3> 适用场合:子类重写父类的方法时想保留父类的一些行为


三、多态(某一类事物的多种形态


    1. 要想使用多态必须使用继承(继承是多态的前提)


2. 多态:父类指针指向子类对象  


    多态的体现


            Person *p [Student new];


            p->age 100;


            [p walk];


          子类对象赋值给父类指针


          父类指针访问对应的属性和方法


3. 好处:如果函数或方法参数中使用的是父类类型,可以传入父类,子类对象


4. 局限性:父类类型的变量不能直接调用子类特有的方法,必须强制转换为子类类型变量后,才能使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值