OC面向对象三大特征
2014-07-21 15:31
253 查看
1.封装
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
好处:
使用更加简单
变量更加安全
可以隐藏内部实现细节
开发速度加快
注意:
属性封装了实例变量,方法封装了具体的实现代码, 类封装了属性和方法。子类可以继承父类中的方法,还可以重写(override)父类的方法。
封装的实现
set方法
作用:
提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
命名规范:
方法名必须以set开头
set后面跟上成员变量的名称,成员变量的首字母必须大写
返回值一定是void
一定要接收一个参数,而且参数类型跟成员变量类型一致
形参的名称不能跟成员变量名一样
get方法
作用:
返回对象内部的成员变量
命名规范:
肯定有返回值,返回值类型肯定与成员变量类型一致
方法名跟成员变量名一样
不需要接收任何参数
示例:
2.继承
面向对象编程(OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。
例如,Employee 是一个人,Manager也是一个人,因此这两个类都可以继承Person 类。但是 Leg 类却不能继承Person 类,因为腿并不是一个人。
继承的好处:
抽取重复代码
建立了类之间的关系
子类可以拥有父类中的所有成员变量和方法
继承的使用场合
当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中
当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类
注意点
基本上所有类的根类是NSObject
示例:
3.多态
多态性(polymorphism)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。不同对象以自己的方式响应相同的消息的能力叫做多态。
特征:
没有继承就没有多态
代码的体现:
父类类型的指针指向子类对象
好处:
如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象
局限性:
父类类型的变量 不能 直接调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法
示例:
4.总结:
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。
5.个人小结
任何一门面向对象的高级编程语言都包含有封装的概念,这是一种人性化的思维方式的体现。对于个人软件开发工作来讲,我们只需要设计好每一个模块的功能,其它模块直接使用它的功能即可,模块之间尽可能的降低关联程度,减小耦合,来实现重用;对于团队开发项目来讲,项目成员之间的开发可以实现相对的独立,只要在整体项目目标上保持一致即可。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
好处:
使用更加简单
变量更加安全
可以隐藏内部实现细节
开发速度加快
注意:
属性封装了实例变量,方法封装了具体的实现代码, 类封装了属性和方法。子类可以继承父类中的方法,还可以重写(override)父类的方法。
封装的实现
set方法
作用:
提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
命名规范:
方法名必须以set开头
set后面跟上成员变量的名称,成员变量的首字母必须大写
返回值一定是void
一定要接收一个参数,而且参数类型跟成员变量类型一致
形参的名称不能跟成员变量名一样
get方法
作用:
返回对象内部的成员变量
命名规范:
肯定有返回值,返回值类型肯定与成员变量类型一致
方法名跟成员变量名一样
不需要接收任何参数
示例:
<span style="font-size:14px;">#import <Foundation/Foundation.h> @interface Score : NSObject { int _score; // C语言成绩 } - (void)setScore:(int)score; - (int)score; @end @implementation Score - (void)setScore:(int)score { _score = score; } - (int)score { return _score; } @end int main() { Score *s = [Score new]; [s setScore:85]; NSLog(@"总分:%d", s.score); return 0; }</span>
2.继承
面向对象编程(OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。
例如,Employee 是一个人,Manager也是一个人,因此这两个类都可以继承Person 类。但是 Leg 类却不能继承Person 类,因为腿并不是一个人。
继承的好处:
抽取重复代码
建立了类之间的关系
子类可以拥有父类中的所有成员变量和方法
继承的使用场合
当两个类拥有相同属性和方法的时候,就可以将相同的东西抽取到一个父类中
当A类完全拥有B类中的部分属性和方法时,可以考虑让B类继承A类
注意点
基本上所有类的根类是NSObject
示例:
@interface Animal : NSObject { int _age; } - (void)setAge:(int)age; - (int)age; @end @implementation Animal - (void)setAge:(int)age { _age = age; } - (int)age { return _age; } @end @interface Dog : Animal @end @implementation Dog @end
3.多态
多态性(polymorphism)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。不同对象以自己的方式响应相同的消息的能力叫做多态。
特征:
没有继承就没有多态
代码的体现:
父类类型的指针指向子类对象
好处:
如果函数\方法参数中使用的是父类类型,可以传入父类、子类对象
局限性:
父类类型的变量 不能 直接调用子类特有的方法。必须强转为子类类型变量后,才能直接调用子类特有的方法
示例:
@interface Animal : NSObject - (void)eat; @end @implementation Animal - (void)eat { NSLog(@"Animal-吃东西----"); } @end @interface Dog : Animal - (void)run; @end @implementation Dog - (void)run { NSLog(@"Dog---跑起来"); } - (void)eat { NSLog(@"Dog-吃东西----"); } @end @interface Cat : Animal @end @implementation Cat - (void)eat { NSLog(@"Cat-吃东西----"); } @end
4.总结:
封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。
5.个人小结
任何一门面向对象的高级编程语言都包含有封装的概念,这是一种人性化的思维方式的体现。对于个人软件开发工作来讲,我们只需要设计好每一个模块的功能,其它模块直接使用它的功能即可,模块之间尽可能的降低关联程度,减小耦合,来实现重用;对于团队开发项目来讲,项目成员之间的开发可以实现相对的独立,只要在整体项目目标上保持一致即可。
相关文章推荐
- iOS开发-写给初学者:OC面向对象的三大特征
- iOS开发篇——OC之面向对象的三大特征
- OC-dealloc、组合与聚合以及面向对象的三大特征...
- OC面向对象三大特征---继承
- OC面向对象的三大特征(封装 继承 多态)习题1
- OC学习心得之面向对象三大特征
- OC面向对象的三大特征(封装 继承 多态)习题2 复合
- 黑马程序员——OC笔记之面向对象三大特征(封装、继承、多态)
- oc面向对象的三大特征
- 黑马程序员————OC面向对象三大特征总结
- OC面向对象的三大特征 封装 ,继承,多态
- OC面向对象三大特征
- OC面向对象三大特征---封装
- OC学习之面向对象三大特征
- OC面向对象的三大特征——封装、继承、多态
- OC面向对象的三大特征(封装 继承 多态)习题3 多态
- OC之面向对象的三大特征(笔记)
- 黑马程序员--Objective-C之--OC面向对象的三大特征
- OC面向对象的三大特征
- 黑马程序员——OC基础——面向对象的三大特征(二)