黑马程序员技术交流社区
标题:
面向对象的三个特性
[打印本页]
作者:
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