黑马程序员技术交流社区

标题: 面向对象的三个特性 [打印本页]

作者: lumingfu    时间: 2015-2-1 04:21
标题: 面向对象的三个特性
一. 封装(成员变量的封装)
封装的set和get方法
set方法
<1>作用:提供一个方法给外界设置属性值,可以在方法里面对参数进行相应过滤
<2>命名规范:
       1>方法名必须以set开头
       2>set后面跟上成员变量的名称,成员变量的首字母必须大写
       3>set方法的返回值一定是void
       4>一定要接收一个参数,而且参数类型跟成员变量一致
       5>形参的名称不能跟成员变量一样
get方法
<1>作用:得到没有公开成员变量的值
<2>命名规范
      1>肯定有返回值,类型跟成员变量的一致
      2>方法名跟成员变量一致
      3>不需要接收任何参数
封装的细节,成员变量命名规范,一定要以_开头
好处(作用):1>让成员变量和get方法名称分开
                         2>可以跟局部变量分开,一看到_(下划线)开头的变量,一般都是成员变量

二. 继承
  类与类的关系
好处
      1>抽取重复代码
      2>建立类之间的关系
      3>子类可以拥有父类中所欲成员变量的方法
坏处:耦合性太强
注意
     1>基本上所有类的根类都是NSObject
     2>父类的声明必须在子类的前面
     3>oc中子类不允许和父类有相同变量
     4>子类和父类可以拥有一样的方法实现,但是优先去类本身寻找方法,找不到去父类中寻找
     5>重写:子类重新实现父类中的某个方法,覆盖父类以前的做法
继承的使用场合
    *两个类有相同的属性和方法的时候,就可以将相同的东西抽取到一个父类中
    *当A类完全拥有B类中的部分属性和方法时,可以考虑让B继承A类
组合和继承的区别
    继承:xxx 是 xxx
   组合:xxx 拥有xx

三. 多态
没有继承就没有多态
好处:如果函数、方法参数中使用的是父类类型,可以转入父类、子类的对象
局限性:父类类型的变量不能用来调用子类特有的方法,必须强转换为子类变量类型才可以调用



作者: synhm    时间: 2015-2-1 10:29
顶         ~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2