面向对象分析与设计

面向对象基本概念


对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行(称作主动服务)。

类:把众多的事物归纳、划分成一些类是人类在认识客观世界时经常采用的思维方法。分类的原则是抽象。类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。

消息:消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方法或函数。

面向对象的基本特征


1.封装性封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:  ◇ 把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。  ◇ 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界〔或者说形成一道屏障〕,只保留有限的对外接口使之与外部发生联系。  封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的"交叉感染",使软件错误能够局部化,大大减少查错和排错的难度。 2.继承性特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。例如,轮船、客轮;人、大人。一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。例如,客轮是轮船和客运工具的特殊类。在java语言中,通常我们称一般类为父类(superclass,超类),特殊类为子类(subclass)。3.多态性  对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:"几何图形"的"绘图"方法,"椭圆"和"多边形"都是"几何图"的子类,其"绘图"方法功能不同。基类的同一个方法,不同子类的不同实现;通过一个接口隐藏不同实现。

面向对象的基本思想:对象,属性,操作,封装,分类,聚合,继承,类的封闭性,消息,关联

面向对象原则:抽象、封装、继承、多态性、接口、抽象类

UML


UML四种关系

Association关联

Dependency依赖

Generalization泛化

Realization实现

面向对象分析与设计,布布扣,bubuko.com

时间: 2024-10-18 04:51:43

面向对象分析与设计的相关文章

面向对象分析与设计—四色原型模式(彩色建模、领域无关模型)(概念版)

阅读目录: 1.背景介绍 2.问自己,UML对你来说有意义吗?它帮助过你对系统进行分析.建模吗? 3.一直以来其实我们被一个缝隙隔开了,使我们对OOAD遥不可及 4.四色原型模式填补这个历史缝隙,让我们真的看见OOAD的希望 5.在四色原型上运用彩色建模增强视觉冲击力 6.通过四色原型模式建模出领域无关模型 7.结束语:建模时你可以不考虑具体实现,但是建模者要懂技术实现 1.背景介绍 至今我都清楚的记得我第一次被面试官问起什么叫"建模"技术时的情景,那是好几年前的事情了,当时是胸有成竹

深入浅出面向对象分析与设计笔记

1.在搜索匹配时注意大小写问题. 2.别为了解决旧问题而产生新问题. 3.使用enum的好处:使用enum的方法或类会受到它的保护,不会有未定义的enum的值.因此不会有打错字或拼错字,对任何具有标准范围或合法值的东西都能避免取得坏数据. 4.任何时候看到重复程序代码,就找个地方进行封装. 5.委托: 6.Java匿名内部类是一种特殊的继承方式,既可以扩展类,也可以实现接口,但是不能两者兼备,而且若实现接口也只能实现一个接口.由于其没有名字,因此不会有命名构造器,但可以实例初始化.如果定义一个匿

面向对象分析与设计之OOA学习

1.从需求到业务用例图 OOA&D的第一步,就是了解用户需求,并将其转换为业务用例图.我们的 CMS系统需求非常简单,大致可做如下描述:这个系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布新闻.任何人可以浏览新闻,浏览者可以注 册成为系统会员,注册后可对新闻进行评论.管理员在后台可以对新闻.评论.注册会员进行管理,如修改.删除等.通过以上需求描述,我们画出如下的业务用例 图: 业务用例图 这里要注意三点: 1.业务用例是仅从系统业务角度关注的用例,而不是具体系统的用例.它描述的是“该

《面向对象分析与设计》阅读笔记3

作者对面向对象分析和设计的经典论述: OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员. OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型. OOA:面向对象分析是一种分析方法,它以可在问题域的词汇表中找到的类和对象的观点来审视需求.

UML面向对象分析与设计试题2008-B卷

UML面向对象分析与设计试题2008-B卷 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 提交APPStore流程http://www.360doc.com/content/15/0203/15/19663521_445974056.shtml

面向对象分析与设计阅读笔记二

今天我阅读了面向对象分析与设计的第二章对象模型,从计算机一开始的第一代语言到面向对象编程的演化,经历了很长的演变,同时面向对象的编程也是历史性的演变.那么什么是面向对象的编程呢?面向对象的编程其实是一种实现的方法,在这种方法中,程序组成许多相互协作的对象,每个对象代表一个实例,而类则属于一个通过继承关系形成的层次结构.以前我的认为是:面向对象的编程不就是写一个类,然后用类去创建一个对象,用对象来实现其中的某些功能.现在看来这样的想法有些片面. 每一种编程风格都是基于它自己的概念框架.对于所有面向

面向对象分析与设计阅读笔记一

今天阅读了<面向对象分析与设计>第一章复杂性,从这里我认识到,世界上的任何东西都是复杂的,从我们学习中就可以看出来:计算机的结构.动植物的结构.物质结构和社会机构的结构等等,这里边都蕴含了事物的复杂性.当然我们的软件也有复杂性,软件面临的问题域很复杂:软件的开发过程中常常会涉及到一些不可避免的复杂性,在其中我们可以发现数不清的竞争需求,甚至是相反的需求:其中也避免不了和用户沟通的困难,用户往往表达不完整.管理软件开发的困难性:软件开发团队的基本任务就是制造简单的假象,开发过程中我们会遇到很复杂

面向对象分析与设计的一些心得

面向对象分析与设计的一些心得 分析.设计与实现 我所理解的真正的对象就是现实生活中客观存在或不存在的真正的对象.这个对象有一个明显的特征就是它具有非常多的状态特征和行为特 征.比如一个人是一个对象,他在一生中会经历无数个交互场景,在这个过程中,每个人的行为特征会不断增多,大部分行为是通过后天学习得到的,只有少数行为 是先天就具有的:另一方面,对于状态特征也是在时不时的变化,比如你的身高.体重,等等.最后,人因为会参与到不同的交互场景,会导致和他关联的各种关联 信息也会不断增多,比如你去上大学,老

【软件工程】 文档 - 银行业务管理 - 面向对象分析与设计

软件工程 银行业务管理和现金结算系统 --- 面向对象分析与设计文档  ***原创所有,本文禁止一切形式的未授权转载,如需转载联系作者,请尊重作者权利. 以下UML建模图仅供参考. 一.面向对象分析 1.      建立用例模型 i. 开户 用例描述:开户用例图中,由管理员发起开户事务,储户提供账户信息.身份信息,管理员验证账户合法性和身份真实性后输入账户信息,储户设置密码,过程中涉及验证合法性(账户号正确.身份真实等).添加账户信息等.储户可以打印凭证. ii. 销户 用例描述:销户用例图中,