首页 > 代码库 > OC--面向对象三大特性

OC--面向对象三大特性

面向对象三大特性:    成员变量的封装、继承、多态        封装:/*    set方法:        1.作用:提供一个方法给外界设置成员变量        2.命名规范:            1>方法名必须以set开头            2>set后面跟上成员变量的名称,成员变量的首字母必须大写            3>返回值一定是void            4>一定要接受一个参数,而且参数类型跟成员变量类型一致            5>形参的名称不能跟成员变量名一样*/- (void)setAge:(int)newAge;/*    get方法:        1.作用:返回对象内部的成员变量        2.命名规范:            1>肯定有返回值,返回值类型肯定与成员变量类型一致            2>方法名跟成员变量名一样            3>不需要接受任何参数                成员变量的命名规范:一定要以下划线 _ 开头    作用:        1.让成员变量和get方法的名称区分开        2.可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量*/- (int)age;/*    对象方法        1>减号 - 开头        2>只能由对象来调用        3>对象方法中能访问当前对象的成员变量(实例变量)            类方法        1>加好 + 开头        2>只能由类(名)来调用        3>类方法中不能访问成员变量(实例变量)            类方法的好处和使用场合        1>不依赖于对象,执行效率高        2>能用类方法,尽量用类方法        3>场合:当方法内部不需要使用到成员变量时,就可以改为类方法            可以允许类方法和对象方法同名        工具类:基本没有任何成员变量,里面的方法基本都是类方法*/self:(指针)指向方法调用者,代表着当前对象self的用途:    1>谁调用了当前方法,self就代表谁    *self出现在对象方法中,self就代表对象    *self出现在类中,self就代表类    2>可以利用”self->成员变量“访问当前对象内部的成员变量    3>[selff 方法名]可以调用其他对象方法/类方法    继承/*        1.继承的好处:        1>抽取重复代码        2>建立了类之间的关系        3>子类可以拥有父类中的所有成员变量和方法    2.注意点        1>基本上所有类的根类是NSObject        2>父类必须声明在子类的前面        3>不允许子类和父类拥有相同名称的成员变量        重写:子类重新实现父类中的某个方法,覆盖父类以前的做法        4>子类可以拥有与父类相同名称的方法,调用时优先在子类找方法,如果找不到,去父类中招    3.坏处:耦合性太强        4.继承的使用场合        1>当两个拥有相同属性和方法的时候,就可以讲相同的东西抽取到一个父类中        2>当A类拥有B类中的部分属性和方法时,可以考虑让B类继承A类         A         {            int _age;            int _no;         }                  B : A         {            int _weight;         }                  // 继承:xx 是 xxx         // 组合:xxx 拥有 xxx                  2.组合         A         {             int _age;             int _no;         }                  B         {             A *_a;             int _weight;         }*/super的作用    1.直接调用父类中的某个方法    2.super处在对象方法中,那么就会调用父类的对象方法      super处在类方法中,那么就会调用父类的类方法    3.使用场合:子类重写父类的方法时想保留父类的一些行为    多态(多种形态)    1.没有继承就没有多态    2.代码的体现:父类类型的指针指向子类对象    3.好处:如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象    4.局限性:        1>父类类型的变量 不能 直接调用子类特有的方法,必须强转为子类类型变量后,才能直接调用子类特有的方法

 

OC--面向对象三大特性