面向对象三大特性:
    成员变量的封装、继承、多态
    
    
封装:
/*
    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>父类类型的变量 不能 直接调用子类特有的方法,必须强转为子类类型变量后,才能直接调用子类特有的方法

 

posted on 2014-12-05 09:09  墓厄  阅读(171)  评论(0编辑  收藏  举报