已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章,面向对象的分析与设计,回顾与作业点评,继承多态访问修饰符staticfinalabstract关键字接口,本章任务,掌握面向对象的分析与设计掌握对象模型的建立掌握类之间的关系掌握可维护与复用设计原则,知识要点,面向对象的分析与设计对象模型的建立类之间的关系可维护与复用设计原则,7.1面向对象的分析与设计,7.1.1.类的设计建议:1)一个.java文件只写一个类2)代码尽可能精简,publicclassTestQiuHe/*求1-200整数的和*/publicintqiuHe(intlast)/算法,效率比较高适用于1-n的连续整数inthe=(1+last)*last/2;/和=(首数+尾数)*个数/2returnhe;/其中last表示传递的是尾数也就是此列连续的数列最后一个数,它也是此数列的个数。/测试1-200的整数的和。publicstaticvoidmain(Stringargs)TestQiuHet=newTestQiuHe();System.out.println(1-200的数的和为:+t.qiuHe(200);/如果传递的是100那么结果就是5050classTestPro/一个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.泛化:与继承类似,指子类是一种特殊化的父类,狮子,classAnimalclassTigerextendsAnimalpublicclassTestpublicvoidtest()Animala=newTiger();,2依赖:显示一个元素在某种程度上依赖于另一个元素,3关联:是类实例之间相互连接的描述,分为一对一、一对多、多对多关联。,classCPUpublicvoidrun()System.out.println(CPUrun);publicclassComputerpublicCPUcpu;/也可以配置到其它电脑上所以用public修饰publicComputer()publicComputer(CPUcpu)/通过参数传递来实例化CPUthis.cpu=cpu;/开启电脑publicvoidstart()cpu.run();/cpu运作publicstaticvoidmain(Stringargs)Computercom=newComputer(newCPU();com.start();,classHand/手类publicvoidna()/拿的方法System.out.println(Hand拿);classFoot/脚类publicvoidpao()/pao的方法System.out.println(Foot跑);publicclassPersonprivateHandhand;/用私有的修饰表示此hand只属于这个人privateFootfoot;/同理Person()hand=newHand();/手和脚是组成人的一部分不能分割只能通过Person构造来实例化hand和footfoot=newFoot();publicstaticvoidmain(Stringargs)Personp=newPerson();p.foot.pao();p.hand.na();,7.4软件的可维护与复用设计原则,1.开闭原则:系统是可扩展的,不要对源代码进行大幅度的修改,即对功能扩展开放,对源码功能修改关闭。2.替换原则:父类可以出现的地方,子类也可以出现3.依赖倒转原则:针对接口编程,不要针对实现编程4接口分离原则:提供调用者需要的方法,屏蔽不需要的方法,/-这里不用接口继承,因为可能出现修改了父接口影响了子接口interfaceIOrderForPortalStringgetOrder();/入口接口定义一个得到订单的方法interfaceIOrderForOtherSys/为其他系统的订单接口StringinsertOrder();StringgetOrder();interfaceIOrderForAdmin/extendsIOrderForPortal,IOrderForOtherSysStringdeleteOrder();/管理员接口提供订单的增,删,改,查StringupdateOrder();StringinsertOrder();StringgetOrder();,classOrderimplementsIOrderForPortal,IOrderForOtherSys,IOrderForAdminprivateOrder()/-什么都不干,就是为了不让直接new,防止客户端直接New,然后访问它不需要的方法./返回给PortalpublicstaticIOrderForPortalgetOrderForPortal()return(IOrderForPortal)newOrder();/返回给OtherSyspublicstaticIOrderForOtherSysgetOrderForOtherSys()return(IOrderForOtherSys)newOrder();/返回给AdminpublicstaticIOrderForAdmingetOrderForAdmin()return(IOrderForAdmin)newOrder();,/-下面是接口方法的实现.只是返回了一个String用于演示-publicStringgetOrder()returnimplementedgetOrder;publicStringinsertOrder()returnimplementedinsertOrder;publicStringupdateOrder()returnimplementedupdateOrder;publicStringdeleteOrder()returnimplementeddeleteOrder;,publicclassTestCreateLimit/测试创建限制publicstaticvoidmain(Stringargs)IOrderForPortalorderForPortal=Order.getOrderForPortal();IOrderForOtherSysorderForOtherSys=Order.getOrderForOtherSys();IOrderForAdminorderForAdmin=Order.getOrderForAdmin();System.out.println(Portal门户调用方法:+orderForPortal.getOrder();System.out.println(OtherSys外部系统调用方法:+orderForOtherSys.insertOrder();System.out.pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026辽宁沈阳兴远东汽车零部件有限公司招聘2人备考题库及答案详解(历年真题)
- 2026江西南昌市青山湖区住房和城乡建设局下属事业单位招聘8人备考题库(含答案详解)
- 2026内蒙古阿拉善盟事业单位招聘工作人员暨“智汇驼乡·鸿雁归巢”143人备考题库含答案详解(完整版)
- 2026江苏苏州电瓷厂股份有限公司招聘12人备考题库附答案详解(基础题)
- 2026广东江门公用水务环境股份有限公司招聘2人备考题库含答案详解(黄金题型)
- 2026四川成都市公共交通集团有限公司招聘投资管理专员岗位备考题库含答案详解(a卷)
- 2026年新疆工业学院招聘事业单位工作人员备考题库(第一批61人)及参考答案详解1套
- 2026上海宝山区世外学校招聘14人备考题库及完整答案详解1套
- 2026广东深圳武宣县中医医院招聘编外聘用人员4人备考题库(第一期)及1套参考答案详解
- 2026南京银行上海分行长期社会招聘备考题库附答案详解(能力提升)
- 2025神经网络与深度学习卷积神经网络
- 急性上消化道大出血应急预案及处理流程
- 口腔癌的口腔护理
- 购货合同模板写
- DL-T596-2021电力设备预防性试验规程
- NB-T11092-2023水电工程深埋隧洞技术规范
- 专题1.5 整式的乘除章末拔尖卷(北师大版)(解析版)
- 钢结构吊装专项施工方案(钢结构厂房)
- HGT4134-2022 工业聚乙二醇PEG
- 国开2023秋《人文英语3》第5-8单元作文练习参考答案
- 煤矿班组长培训课件
评论
0/150
提交评论