您的位置: 首页 >> 新闻中心 >> 计算机 >> 软件开发
面向对象的几个重要概念
■ 最新课程推荐更多课程>>
学校培训课程开课时间上课地点精英价报名
正辰培训 微软软件测试工程师电话预约西直门教学区¥4704
新 科 海 软件测试工程师就业班电话预约海淀长远天地¥6280
北师大IT 软件工程与测试实战班电话预约北京师范大学¥1800
北师大IT 高级网络工程师就业班电话预约北京师范大学¥13000
金 同 方 网络工程师就业周末班电话预约人大总部¥7000
  ◆OOP的主要特征:
  抽象(abstract)
  封装(encapsulation)
  继承(inheritance)
  多态(polymorphism)
  关联(association)
  聚合(aggregation)
  组合(composition)
  内聚与耦合(cohesion & coupling)

  单个类型 抽象Abstract 封装encapsulation
  层次结构 继承inheritance  多态polymorphism
  类型之间 关联association  聚合aggregation  组合composition
  编程准则:内聚与藕合 cohesion & coupling

  ◆抽象Abstract:把事物共同点抽取出来,以统一的方式进行概要描述的过程.抽象是存在不同层次的。

  在不同的需求环境下,我们到底把什么抽象成类,把什么当作实例或对象,是面向对象设计一开始最关键的一步,如果抽象过度,可能导致程序设计层次加重,但如果抽象不够在极端的情况下,可能会退化到面向过程设计的那种一段程序对应一个问题的情形。

  忽略掉一个对象或实体的细节而只关注其本质特征的过程简化功能与格式帮助用户与对象交互。

  ◆封装(encapsulation)
  隐藏数据和实现
  提供公共方法供用户调用功能
  对象的两种视图
   —— 外部视图:对象能做的工作
   —— 内部视图:对象如何完成工作
   —— 电视机:调节音量

  ◆继承(inheritance)
  通过存在的类型定义新类型的机制。
  通常在两个类型之间存在“is a”或“kind of”这样的关系。
  通过继承可实现代码重用,另外继承也是多态的基础。
  如苹果“is a”水果。

  ◆多态(polymorphism)
  一个名称,多种形式。
  一个类中的方法重载就是一种多态。
  基于继承的多态。
  调用方法时根据所给对象的不同选择不同的处理方式。
  如Football——play():使用脚来完成。
  Basketball——play():使用手来完成。
  给出一个具体的足球或篮球,用户自动知道该使用谁的方式去执行play()。

  ◆关联(association)
  对象之间交互时的一种引用方式。
  当一个对象通过对另一个对象的引用去使用另一个对象的服务或操作时,两个对象之间便产生了关联。
  如person使用computer,person与computer之间就存在了关联关系。
  person
  {  
   Computer.PlayGame();
  }

  ◆聚合(aggregation)
  关联关系的一种,一个对象成为另外一个对象的组成部分。
  是一种关系较强的关联。
  在两个对象之间存在“has a”这样的关系,一个对象作为另一个对象的属性存在,在外部对象被生产时,可由客户端指定与其关联的内部对象。
  如汽车与轮胎,轮胎作为汽车的一个组成部分,它和汽车可以分别生产以后装配起来使用,但汽车可以换新轮胎,轮胎也可以卸下来给其它汽车使用。

本新闻共2页,当前在第1页  1  2

  影视动画培训   北大BEC培训官方报名网站   2008美国夏令营启航官方指定报名网站   2008留学第一站!  
  北师大 火星时代
共举影视动画培训之鼎
  北大BEC培训官方报名网站
现在报名独享95折!
  2008年国家职业资格考试
一次过关完全备考手册
  2008留学第一站
留学资讯尽在精英留学站!
 
上一篇:怎样从需求转换到设计和编码
下一篇:看软件测试过程的持续改进
 相关新闻
·软件设计:EJB设计模式5·使用struts+spring+hibernate组装web应用
·软件体系结构与软件架构解析·新一代的功能点规模估算方法:COSMIC-FFP[1]
·新一代的功能点规模估算方法:COSMIC-FFP[2]·有关管理客户需求的一点见解
·ScottAmbler谈如何编好的软件模型·为什么要进行需求管理?
·如何提高软件企业的核心竞争力·影响软件开发效率的12大杀手
·企业管理软件的需求描述方法·失衡的中国软件职业结构
·CMMI5在项目中的精简应用·软件测试演义-究竟什么是软件测试?
·功能测试自动化的投入和产出·看软件测试过程的持续改进
 
◇ 重点栏目导航
◇ 精英服务承诺
教育顾问:010-51660910
QQ交流:138660910
相关资料
·软件测试新手的修炼之路
·Smarty简体中文参考手册
·Struts中文手册
·Struts快速学习指南
·ultradev动态网页制作教程
·UML工具箱
·《设计模式》中文版
·学友Flash伴侣 1.11
·阿须图像水印(AssureMark)V2.0
·超级语霸
相关试题
·2008年云南公务员考试专业试卷之科技环保
·2008年云南公务员考试试卷之教育文化类专
·2008年云南公务员考试试卷参考答案之科技
·2008年云南公务员考试试卷参考答案之教育
·2008年公务员考试科教管理类专业试卷参考
·2008年公务员考试科教管理类专业试卷(云
·2007年全国CPA考试试卷及答案解析之《会
·2007年CPA试卷及答案解析之《财务成本管
·2008年注会考前模拟试题之《财务成本管理
·2007年全国CPA《税法》考试试卷及答案解
相关热贴
·如何改QQ IP地址!
·恰当选择软件测试自动化方案
·ADO.NET学习总结
·.net操纵xml文件类(c#)
·Log4net教程
·VPN技术详解
·高手必读 网络端口安全防护技巧放送
·访问XP共享出现的问题解决办法
·Web2.0时代,RSS你会用了吗?(技术实现总
·.NET下正则表达式应用的四个示例