- 1、本文档共129页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 抽象、封装与类 4.1 抽象与封装 4.2 Java 的类 4.3 类的修饰符 4.4 域 4.5 方法 4.6 访问控制符 4.7 小结 习题 本章首先讨论抽象与封装这两个面向对象程序设计的重要特点,然后介绍这两个特点在Java编程中的体现,介绍Java中定义并使用类与对象的最基本的原则,包括修饰符、构造函数的具体使用规则。 4.1 抽象与封装 4.1.1 抽象 抽象是科学研究中经常使用的一种方法,即去除掉被研究对象中与主旨无关的次要部分,或是暂时不予考虑的部分,而仅仅抽取出与研究工作有关的实质性的内容加以考察。在计算机技术的软件开发方法中所使用的抽象有两类:一类是过程抽象,另一类是数据抽象。 过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤。面向过程的软件开发方法采用的就是这种抽象方法。使用过程抽象有利于控制、降低整个程序的复杂度,但是这种方法本身自由度较大,难于规范化和标准化,操作起来有一定难度,在质量上不易保证。 数据抽象是与过程抽象不同的抽象方法,它把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,是相对于过程抽象更为严格、也更为合理的抽象方法。 面向对象的软件开发方法的主要特点之一,就是采用了数据抽象的方法来构建程序的类、对象和方法。实际上,第1章所讲的面向对象软件开发过程中的面向对象的分析,就是对实际问题进行抽象,从而建立物理模型的过程。在面向对象技术中使用这种数据抽象方法,一方面可以去除掉与核心问题无关的细枝末节,使开发工作可以集中在比较关键、主要的部分;另一方面,在数据抽象过程中对数据和操作的分析、辨别和定义可以帮助开发人员对整个问题有更深入、准确的认识。最后抽象形成的抽象数据类型,则是进一步设计、编程的基础和依据。 比如,要处理一个有关银行日常业务的问题,最核心的问题就是所有的资金、账目往来。根据与此核心问题有关的操作,就可以建立一个表示账户的抽象数据类型,作为考察的重点。而银行的其他业务和日常工作,则不在此列。相反,如果面对的是一个旨在提高银行服务水平和工作效率的综合管理系统,那么上述几项被第一个系统忽略的工作就应该成为第二个系统的抽象数据类型中的一部分。 抽象可以帮助人们明确工作的重点,理清问题的脉络。面向对象的软件开发方法能够游刃有余地处理大规模、高复杂度的系统,也离不开这个特性发挥的重要作用。 4.1.2 封装 面向对象方法的封装特性是一个与其抽象特性密切相关的特性。具体地,封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流和交互。 在面向对象的程序设计中,抽象数据类型是用“类”这种面向对象工具可理解和操纵的结构来代表的,每个类里都封装了相关的数据和操作。在实际的开发过程中,类多用来构建系统内部的模块,由于封装特性把类内的数据保护得很严密,模块与模块间仅通过严格控制的界面进行交互,使它们之间耦合和交叉大大减少,从而降低了开发过程的复杂性,提高了效率和质量,减少了可能的错误,同时也保证了程序中数据的完整性和安全性。 例如,在银行日常业务模拟系统中,账户这个抽象数据类型把账户金额和交易情况封装在类的内部,系统的其他部分没有办法直接获取或改变这些关键数据,只有通过调用类内的方法才能做到。如调用查看余额的方法来获知账户的金额,调用存取款的方法来改变金额。只要给这些方法设置严格的访问权限,就可以保证只有被授权的其他抽象数据类型才可以执行这些操作,影响当前类的状态。这样,就保证了数据的安全和系统的严密。 面向对象技术的这种封装特性还有另一个重要意义,就是使抽象数据类型,即类或模块的可重用性大为提高。封装使得抽象数据类型对内成为一个结构完整、可自我管理、自我平衡、高度集中的整体;对外则是一个功能明确、接口单一、可在各种合适的环境下都能独立工作的有机的单元。这样的有机单元特别有利于构建、开发大型标准化的应用软件系统,可以大幅度地提高生产效率,缩短开发周期和降低各种费用。例如,在“银行日常业务系统”中使用的抽象数据类型“账户”,如果设计合理的话,就可以直接应用在业务性质相似的“保险公司投保理赔管理系统”或“邮政储蓄业务系统”中。封装特性的这个优点目前已经越来越为广大的开发人员所重视。 4.2 Java的类 如前所述,抽象和封装这两个面向对象程序设计的重要特点主要体现在类的定义与使用上,本节将讨论如何定义Java中的类。 4.2.1 系统定义的类 Java程序设计就是定义类的过程,但是Java程序中定义的类的数目和功能都是有
您可能关注的文档
- 语文S版二年级上册《动物过冬》剖析.ppt
- 第4单元脉冲电路重点.ppt
- 第1章为什么学习C语言重点.ppt
- 第5章--三相异步电动机的基本原理重点.ppt
- 江西版小学四年级下册美术教案重点.doc
- 语文课中的情感力量剖析.ppt
- 第5章时序电路的VHDL设计重点.ppt
- 第4讲ERP系统的数据环境的建立与维护重点.ppt
- 第5章时序逻辑电路重点.ppt
- 第1章物料能量平衡重点.ppt
- [中央]2023年中国电子学会招聘应届生笔试历年参考题库附带答案详解.docx
- [吉安]2023年江西吉安市青原区总工会招聘协理员笔试历年参考题库附带答案详解.docx
- [中央]中华预防医学会科普信息部工作人员招聘笔试历年参考题库附带答案详解.docx
- [保定]河北保定市第二医院招聘工作人员49人笔试历年参考题库附带答案详解.docx
- [南通]江苏南通市崇川区人民法院招聘专职人民调解员10人笔试历年参考题库附带答案详解.docx
- [厦门]2023年福建厦门市机关事务管理局非在编工作人员招聘笔试历年参考题库附带答案详解.docx
- [三明]2023年福建三明市尤溪县招聘小学幼儿园新任教师79人笔试历年参考题库附带答案详解.docx
- [哈尔滨]2023年黑龙江哈尔滨市木兰县调配事业单位工作人员笔试历年参考题库附带答案详解.docx
- [上海]2023年上海市气象局所属事业单位招聘笔试历年参考题库附带答案详解.docx
- [台州]2023年浙江台州椒江区招聘中小学教师40人笔试历年参考题库附带答案详解.docx
最近下载
- 中国智能运维行业市场调查研究及投资潜力预测报告.docx
- 高职单招英语试卷高职单招英语试卷.doc
- 2023苏教版科学六年级下册教学计划、教学设计及教学总结(含目录)平铺式.docx VIP
- 《肖邦E大调夜曲 - Nocturne op 9 no 2》古典吉他谱.pdf
- 标准图集-20S515-钢筋混凝土及砖砌排水检查井.pdf VIP
- 统编版语文三年级下册第三单元教材解读解读与集体备课课件.pptx
- AI+行业应用研究报告:AI+办公.pptx VIP
- 苏教版二年级下册科学教学计划.pdf
- 《磁铁的秘密》幼儿园大班科学PPT课件.ppt VIP
- 2025顺德农商银行小微客户经理校园招聘笔试模拟试题及答案解析.docx
文档评论(0)