




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章,面向对象的分析与设计,回顾与作业点评,继承 多态 访问修饰符 static final abstract关键字 接口,本章任务,掌握面向对象的分析与设计 掌握对象模型的建立 掌握类之间的关系 掌握可维护与复用设计原则,知识要点,面向对象的分析与设计 对象模型的建立 类之间的关系 可维护与复用设计原则,7.1面向对象的分析与设计,7.1.1.类的设计建议: 1)一个.java文件只写一个类 2)代码尽可能精简,public class TestQiuHe /* 求1-200整数的和*/ public int qiuHe(int last) /算法,效率比较高适用于1-n的连续整数 int he = (1 + last) * last / 2;/ 和=(首数+尾数)*个数/2 return he; / 其中last表示传递的是尾数也就是此列连续的数列最后一个数, 它也是此数列的个数。 /测试1-200的整数的和。 public static void main(String args) TestQiuHe t=new TestQiuHe (); System.out.println(“1-200的数的和为:“+t.qiuHe(200); /如果传递的是100那么结果就是5050 class TestPro/一个TestQiuHe.java文件中可以定义两个类但只有TestQiuHe是用/public修饰的。 ,7.1.2 类名、变量名、方法名的选取 1)用英文 2)有意义 3)常量大写 4)包小写,7.1.3.类的属性设计建议 1)将类的属性设计为私有的 2)对局部变量初始化 7.1.4.类的设计建议 1)考虑构造方法 2)定义构造方法时不要调用其他方法 3)方法参数不宜过多 4)定义专门的清理或关闭方法,7.1.5继承的设计建议,将常用方法和属性放在超类中 1)不要使用protected以免破坏封装 2)在类关系模型中使用继承 3)除非使用继承得到的方法有用,否则不要使用继承 4)重写方法时不要改变预期行为 5)尽量使用多态,而不是类型信息 6)尽量将非常常用的方法和属性放在超类中 7)不要泛用反射,7.2对象模型建立,1.UML简介 统一建模语言,用来描述OOA、OOD结果,是描述、构建和图形化文档 的描述语言,绘制对象模型图,分为静态图和动态图。 静态图包括: 包图 组件图 对象图 部署图 复合结构图 用例图 类图 动态图包括: 交互概观图 顺序图 通信图 状态图 活动图 定时图,7.2.2.用例图:是显示用例和参与者的名称及其关系的图,用例描述参与者如何使用系统来实现其目标的,是对某个系统功能的描述。,7.2.3.类图:显示系统的静态结构,如类、接口及其关联,包含类名,属性 和方法。,类名,方法,属性,7.2.4 序列图:也叫时序图,用于按时间顺序模拟控制流程。显示了在对象生命线上各点之间的对象传递的消息,描述消息及时间的顺序。水平方向表示消息或方法被哪个对象调用,垂直方向表示发生地及时间顺序序列。,7.2.5状态图:描述每个类对应的对象在其生存期间的动态行为,save(),delete(),7.2.6活动图:描述系统行为,展现参与行为的类所进行的各种活动的顺序关系,7.2.7组件图:描述软件的各种组件之间的依赖关系,7.2.8部署图:描述运行软件的系统中硬件和软件的物理结构,7.3类之间的关系,1.泛化:与继承类似,指子类是一种特殊化的父类,狮子,class Animal class Tiger extends Animal public class Test public void test() Animal a=new Tiger(); ,2依赖:显示一个元素在某种程度上依赖于另一个元素,3关联:是类实例之间相互连接的描述,分为一对一、一对多、多对多关联。,class CPU public void run() System.out.println(“CPU run“); public class Computer public CPU cpu; /也可以配置到其它电脑上所以用public修饰 public Computer() public Computer(CPU cpu)/通过参数传递来实例化CPU this.cpu=cpu; /开启电脑 public void start() cpu.run(); /cpu运作 public static void main(String args) Computer com=new Computer(new CPU(); com.start(); ,class Hand /手类 public void na() /拿的方法 System.out.println(“Hand 拿“); class Foot/脚类 public void pao() /pao的方法 System.out.println(“Foot 跑“); public class Person private Hand hand;/用私有的修饰表示此hand只属于这个人 private Foot foot;/同理 Person() hand=new Hand(); /手和脚是组成人的一部分不能分割只能通过Person构造来实例化hand和foot foot=new Foot(); public static void main(String args) Person p=new Person(); p.foot.pao(); p.hand.na(); ,7.4软件的可维护与复用设计原则,1.开闭原则:系统是可扩展的,不要对源代码进行大幅度的修改,即对功能扩展开放,对源码功能修改关闭。 2.替换原则:父类可以出现的地方,子类也可以出现 3.依赖倒转原则:针对接口编程,不要针对实现编程 4接口分离原则:提供调用者需要的方法,屏蔽不需要的方法,/-这里不用接口继承,因为可能出现修改了父接口影响了子接口 interface IOrderForPortal String getOrder();/ 入口接口定义一个得到订单的方法 interface IOrderForOtherSys / 为其他系统的订单接口 String insertOrder(); String getOrder(); interface IOrderForAdmin / extends IOrderForPortal,IOrderForOtherSys String deleteOrder();/ 管理员接口提供订单的增,删,改,查 String updateOrder(); String insertOrder(); String getOrder(); ,class Order implements IOrderForPortal, IOrderForOtherSys, IOrderForAdmin private Order() / -什么都不干,就是为了不让直接 new,防止客户端直接New,然后访问它不需要的方法. / 返回给Portal public static IOrderForPortal getOrderForPortal() return (IOrderForPortal) new Order(); / 返回给OtherSys public static IOrderForOtherSys getOrderForOtherSys() return (IOrderForOtherSys) new Order(); / 返回给Admin public static IOrderForAdmin getOrderForAdmin() return (IOrderForAdmin) new Order(); ,/ -下面是接口方法的实现.只是返回了一个String用于演示- public String getOrder() return “implemented getOrder“; public String insertOrder() return “implemented insertOrder“; public String updateOrder() return “implemented updateOrder“; public String deleteOrder() return “implemented deleteOrder“; ,public class TestCreateLimit / 测试创建限制 public static void main(String args) IOrderForPortal orderForPortal = Order.getOrderForPortal(); IOrderForOtherSys orderForOtherSys = Order.getOrderForOtherSys(); IOrderForAdmin orderForAdmin = Order.getOrderForAdmin(); System.out.println(“Portal门户调用方法:“ + orderForPortal.getOrder(); System.out .println(“OtherSys外部系统调用方法:“ + orderForOtherSys.insertOrder(); System.out.println
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小龙虾捕捞工具创新创业项目商业计划书
- 海洋渔业健康饮食APP创新创业项目商业计划书
- 康养美容美发学校创新创业项目商业计划书
- 2025年光伏产业供应链数字化管理创新模式研究报告
- 2025年工业污染场地修复技术选择与成本效益对比研究报告
- 滇越铁路读书分享
- 精制制盐工职业考核试卷及答案
- 2025年新能源汽车电池材料创新与市场前景研究报告
- 2025年医药行业CRO模式下的临床试验数据分析与解读报告
- 读《活法》心得体会撰写指导
- 《中华民族一家亲-同心共筑中国梦》队会课件
- 2025届高考试题原创命题比赛说题稿
- 资产负债管理与精算风险控制
- 小学道法小课题研究活动记录
- 膜结构车棚施工施工方案
- 骨科医疗行业市场前景及投资研究报告:全面集采骨科高值耗材
- (2024年)人才培养计划方案
- 国开Python语言基础形考理论考核1-4答案
- 企业质量与安全培训课件
- 《青霉素过敏试验》课件
- 广东省地质灾害危险性评估实施细则(2023年修订版)
评论
0/150
提交评论