面向对象建模技术课件_第1页
面向对象建模技术课件_第2页
面向对象建模技术课件_第3页
面向对象建模技术课件_第4页
面向对象建模技术课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象建模技术

信息工程与自动化学院

计算机系/计算机重点郊室

教师:陈星

授课日期:2011年3月7

第三课类继承(一)

★红色部分属于力纲要求

o面向对象建模技术

♦什包I.”・

=处/于।大QI口」口3/「T^rra干if,iw也LX

的关系’

。不是对象之间的关系

。与人的分类概念较为接近

图2-19一个层次结构

面向对象建模技术

.关于物14术・

•纵承:火车绻承了陆上交通「具的特性.

•一般化/具体化:火车比陆上交通工具更具体,陆上交通工具比火车更一般化e

•父类/子类:岫卜交通I具是火车的父类,火车是地上交通L具的子类.

•超类/子类,陆上交通工具是火车的超类,火军是触上交通工具的子类。

•基类/派生类:陆上交通工具是基类,火车是派生类,

本书不使用基类和派生类.

o面向对象建模技术

面向对象建模技术

1^1^q.

—火

=:ni/八1,八:j为i<_iy目jIrm

\

对象a所具有的属性

'和操作对象b自动都Jaib-"工

.有。师

心-------------JB

°。

o面向对象建模技术

o面向对象建模技术

O面向对象建模技术

IITUUkN口7「回目」,|比不

商品销售界面

搜索区

分类列表

大图标展小区/商品细节区

面向对象建模技术

♦■子

检索面板

o面向对象建模技术

O

我的检索利用类继承,把我的商品

面板自己的程序替换细节面板

进去,让它们一

起工作。.

o面向对象建模技术

o面向对象建模技术

实际系统

继承N以指定类从父类中养取些特件,再添加它向J的和待特杵一技济会擢述对叁的

够个系列。继承可以把类蛆合到越来越通用的概念中,最后就会推导出我们生活的世界.

从编程的观点来看,需要继承是因为:

•它支持更丰富、更强大的建模•这有利F开发小组和其他想电用代码的开发人员a

•它可以在一个类中定义信息和行为.在相关的子类中共享这些定义Q这样要编写的代

码就比较少.

•继承昆伊自然的,它盘面向N*的主爵动机之〕

f类继承超类的所有字段、消息和方法(以处断言L例如,如果要给陆上交通工具建模,

o面向对象建模技术

o面向对象建模技术

〜卜日八JCH、LMLyjD、IIU

。类和属性电,

milesPerGallon

o面向对象建模技术

=f一zjyi口IVIVDIIIJUF/।、I<Ax^v^ai、

Bicycle、Truck的语义?

。减少“黑线”

Car------3milesPerGallon

通过绿线和黑线的组合Car、

Bicycle、Truck还是能连接

至!JtopSpeed

o面向对象建模技术

Car

mllesPerGallon:float

getMllesPerGallon():tloat

setMllesPerGallon(:float)

LandVehlcleBicycle

topSpeed:floatnumberOfGearsdnt

getTopSpeGd(}:floatgetNumberOfG9ars():float

setlbpSpeed(:tloat)setNumberOfGears(:lnt)

UML中,类型Truck

放在冒号后面。

axleWelghtifloat

getAxleWelghtf):float

setAxleWeight(:tloat)

o面向对象建模技术

@面向对象建模技术

zjyi

一组对象<Collection

ArrayList

O面向对象建模技术

入的次序。

a对象世界加入的次序

o面向对象建模技术

=匕7厂

一组对象<Collection

o面向对象建模技术

〜匕日々目1-zjyik;

o面向对象建模技术

只要利用黑线与绿线组合;绿线与绿线组合,

对象与类和属性的对应关系没有改变。

。减少了概念的联系,降低了耦合.

面向对象建模技术

面向对象建模技术

contains

ArrayListLinkedList

面向对象建模技术

=/口/心/ji/AdciIICIILr\i;

@面向对象建模技术

z

ru/n二口1/八।工;

面向对象建模技术

»««2

=/口/心7Jl/AVk-FIILOII13;

numberOfElements

面向对象建模技术

»««2

y/|力厂口二ni/八।工;

numberOfElements

@面向对象建模技术

contains!rObject):boolean・

返回false.

elementAt(:int):Object在W

numberOfElementM);int返

ArrayListLinkedList

o面向对象建模技术

o面向对象建模技术

@面向对象建模技术

LinkedList

面向对象建模技术

=I又厂口;I山办日向口jf十口匕。

。你会给很多水果削掉果皮,自然而然产生“削

果皮”的概念,产生,:

。抽象类Fruit

。抽象方法peel

。假如给一个Fruit的对象发送peel消息,将会怎

样?\F

Q假如给List对象发送一个contains消息卜将会怎

样?1

o面向对象建模技术

.MM

』」山为IK:uJ/、依J、

面向对象建模技术

。所有射向“苹果”类的对象都射向“水果”类

面向对象建模技术

。增加“苹果”与“水果”的继承关系

苹果T水果

面向对象建模技术

注_L^二八UJ;

没有直接用“黑线”投

到“水果”的对象。

o面向对象建模技术

.MH

o面向对象建模技术

.MH

o面向对象建模技术

.MH

山为0UL

人类思维的习惯

o面向对象建模技术

.MM

03由然大中J大匕口/「为口L白及MRTlkTN;tT」界

体细节♦

。可能含有无法被程序实现的方法

0称为抽象方法,下.r

。请思考:抽象方法既然无法执行,有什么用处

呢?、

面向对象建模技术

IIJ4口力、/114I。,、

•方法包括1

。方法名

。方法参数表

。方法体(代码)

❷抽象方法

。没有方法体

。无法执行

立抽象类无法实例化

o面向对象建模技术

・^IVIL-।i十丁补/J、」国力

。如果不能使用斜体字,在类名左边或上方注明

{abstract}

抽象类有如下优点:

•它们允许更丰富、更灵活地建模。例如,List类有三个消息contains、elementAt和

numberOfElements,但我们不能为它们提供具体的方法。

•它们可以共享更多的代码,因为可以编写具体的方法来使用抽象的方法,例如,List

的contains方法调用抽象方法&

•有方法体(代码)的方法"-

•对抽象方法的调用,被自动代替为对具体

方法的调用。

•请思考内在的好处。

面向对象建模技术

publicabstractclassList

(

publicabstractbooleancontains(Objecto);

)

③错误的语句:newList();v

③只有具体的类能够被实例化,如果调配抽象方

达,最终一定会调用一个具体类的“事定义方

法”。1

o面向对象建模技术

■mum

o面向对象建模技术

elementAt

b

I

ArrayList

o面向对象建模技术

■mum

o面向对象建模技术

■mum

©面向对象建模技术

面向对象可以重新定义继承来的元素。最简单的形式是,重定义允许子类修改继承方法

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论