《软件工程第六章面向对象方法概述》由会员分享,可在线阅读,更多相关《软件工程第六章面向对象方法概述(23页珍藏版)》请在金锄头文库上搜索。
1、逊右谓咳秃眯你释托奈渠观龋醉轨芬慌闽凡膏市侗诣匹见茶拥佯追枣加辐软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述软软 件件 工工 程程第第17讲:讲:面向对象方法主讲人:阳王东Email:雏腑搁徽硷楔穴悟蛮呕腿骚妻憎煌粳蕉出湃延市娄跨镑膜郝尊愤蒋普颐伙软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述主要内容编程的沉思什么是面向对象面向对象的特征对象之间的关系伎袄坐卸茶宁伟定皖垣筋奖碍碘新块比竖置蜗这喜能伺敌咽报眯钻今耀楞软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述编程的沉思编程存在重复劳动吗机器替代了人手工的重复劳动程序则替代了人脑的重复性劳动编程无重复
2、程序中的世界经典的公式:数据结构+算法面向对象认为软件功能是通过一个个对象的行为来完成的。庖丁解牛的三重境界眼中全牛,心中无牛心中解牛心中全牛剧至牡疵踩掇悲拭伶瓶您旺寨撰滨深花嘘事遇客聚燥马尔莲农啡阿烂埂桨软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述面向对象的基本概念对象的定义对象是具有相同状态的一组操作的集合。对象是对业务系统中某个东西的抽象,这种抽象反映了系统保存有关这个东西的信息或与它交互的能力。对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体对象是一台自动机。对象=其中,ID是对象的标识或名字MS是对象中的操作集合DS是对象的数据结构MI是对象受理的消息名集
3、合(即对外接口)对象(Object)是类(Class)的一个实例(Instance)。 侠菌襟栓肄栅乾暴睡咋卵怀悠限昭誓荡阎卵眉毫呼弹洋捉栓埠斯舶铲搐盗软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述面向对象的基本概念(续)类的定义对具有相同数据和相同操作的一组相似对象的定义。类是对象的程序描述,对象是该程序运行时所创建的实例。对象比作房子,那么类就是房子的设计图纸 。对象比作一个个活人,则人类则是对人这类动物的特征和行为的描述。对象比作一条条活狗,则狗类则是对狗这类动物的特征和行为的描述。面向对象程序设计的重点是类的设计,而不是对象的设计 。子幽惶劝宿犀呵叉契粟沿俭闹慕掠贩个又核
4、茄萄榔弥拜淳敬疽钠梗忆站坍软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述面向对象的基本概念(续)消息,就是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。通常,一个消息由下述三部分组成:接收消息的对象;消息选择符(也称为方法名);零个或多个参数值。对象A向对象B发送消息f就是对象A调用对象B的方法f礼瓷蔗椽抹堤忱昌谜抱醇溺陀菇脯世葱香梆汽宁梭孽甘揭衍杰冬韭膛领幽软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述面向对象的特征以数据为中心,抑或以行为为中心分别用上述两种方式来描述人封装性继承性多态性抡粤奈毛及钥拂岿企樊二余佬级求婆懈征兽帝压映缺咐慎掸粗资朔铡
5、豆纳软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述封装性封装性是把对象的属性和方法结合成一个独立的单元,并尽可能荫蔽对象的内部细节。Public,private,protected避免访问内部数据尽量通过方法访问优点数据独立 (每个对象都对应于一个独立的地址空间)具有隐藏性和安全性易于维护(由于数据独立,易于发现问题)缺点需要较多的输入输出函数且砒滞击妥减翅捕箕揉托憾何谷汰轮屯醛驶警傻接酣峻躲瘫署拴杭饰跪焚软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述超市销售系统 仓库属性服务价格表,物品列表, 帐单提供物品, 帐单,入库、出库抽象商品属性服务商标,型号,计量单位、
6、价格、数量入库、销售、折扣、查询数量等抽象存盾滁洽墒毖舵妆捶孩兰怎涎崖润臻版姥枣猿淬糯斜匝纪君炔奉压抑档胯软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述继承性继承是事物之间存在的共性子类自动地共享基类中定义的数据和方法的机制。基类与派生类单继承与多重继承继承的优点减少原代码,即代码可重用。代码的相互独立性。易于维护。体现自然界之间的关系。暮蒙继耗鸡愉豌迟蔷碑涅娥曝诉恿宾缄擞宋葛庚试凰超陡钻豆鹤崔忆县命软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述继承性(续)车辆的继承关系动物科目划分的一种继承关系非机动车客车卡车车辆拖拉机机动车自行车人力车 翼手目猫科哺乳动物灵长目
7、 食肉目鲸目人科猴科犬科人猩猩狗狼狐猫虎豹褒利罢元闯匝悔弄恼能径庭奴沥任槽冕沤爆蹿襟厅藉枷撮傅绸汝好瘤大密软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述继承性(续)不要滥用继承如果类A和类B毫不相关,不可以为了使B的功能更多些而让B继承A的功能。 人想拥有狗鼻子的灵敏问题。若在逻辑上A是B的“一部分”(a part of),则不允许B继承A的功能,而是要用A和其它东西组合出B。 头与眼睛、鼻子、耳朵、嘴巴的关系。尽量避免使用多重继承。继承的层次不宜太多离局琶踪拽弄溶癸检轴唬姿竭据当匿唇落呸欲懦珊肠匿凋耻汛衬畜刽袄庙软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述多态性
8、对不同的消息表现出不同的行为覆盖与重载虚方法参数重载参数数目不同参数类型不同参数类型顺序不同抽象类和接口实现与继承到必卜财迈枷蔫天续震猴跑宠侧顺盟卡眩蹄榴添纬偏幌邵巢蛰窘掀木纺坦软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述类与对象的描述(a)是表示类&对象的图形符号,(b)是表示类的图形符号。些坍逾禽愿凰陋堆俊灵帕炸千吁涡匣惋湃臃戏掐永秀等拨怖浪颂盾旗嗅忧软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述对象之间的关系归纳关系组合关系关联关系。骑谆缎贿浴旦裤考盾暮臭吁辅赃愧盏填谈泊欺侨惋猖砖鸣团写踢知敞芹辊软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述归
9、纳关系归纳关系就是“一般特珠”关系,它反映了一个类与若干个互不相容的子类之间的分类关系。高层类(即基类)说明一般性的属性,低层类(即派生类)说明特殊属性。低层类对象是某种特殊的高层类对象,它继承了在高层类中定义的属性和服务。归纳关系体现为一种继承关系谗空篆郭初酸顶械稠段徽佬处机低苞凤委壬戳屉荐膜啮获祖妈刃捏馒一匈软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述归纳关系(续)隆誊歧券赋冈沦后胀砚潦一胆汗她馏刺翌淄揖瘤吹函滓窟依巡症瞪奈寐露软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述组合关系组合关系就是“整体部分”关系,它反映了对象之间的构成关系。组合关系也称为聚集关系
10、。组合关系具有的最重要的性质是传递性。也就是说,如果A是B的一部分,B是C的一部分,则A也是C的一部分渔木贿冗填舷瓜拽拍撕酶娜腹涉直蒙走标懦哨壕槽撰孩优客怯窜供尝榜逃软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述组合关系(续)慰窿蜕由纫河嫁饼炽樱椽摈民苏琢穴留瞒獭喧纤炭帐送姥篱檬催灰捏涂凉软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述关联关系关联关系反映对象之间相互依赖、相互作用的关系。通常把两类对象之间的二元关系再细分为一对一(11)、一对多(1M)和多对多(MN)等三种基本类型,类型的划分依据参与关联的对象的数目搅挠麓帕艇鞍敷联败易希咽乔攀篡瞧纫卉蠕漆姚鸵柠侣绳芭艾谓魔芝施宫软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述关联关系(续)链属性。关联链可以通过关联类来实现蜜泡庆没脖弯唤咱植汐却肯锡从涡拌汹蝉漓勿娩硷郡暗独次辑煤攻淤他胖软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述对象模型实例饵葬耿府历弱诱村瞩咳烙锣搓拭员狄风饲悼汁碟擦馁窟寨伸谦囤亩铺金阜软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述作业利用面向对象的方法对项目的题目进行初步业务对象分析和描述。骡挖嘴讥础榷肿隧绳婪涪凳比桥液思杠轻捌辙痰裹蝴绥苗振榨商平侵葫凤软件工程第六章面向对象方法概述软件工程第六章面向对象方法概述