




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
类和对象(上),2019/11/19,类和对象(上),2,类和对象,程序设计简史面向对象的思想类的定义对象的创建和使用final、static关键字、常量,2019/11/19,类和对象(上),3,程序设计简史,过程式程序设计结构化程序设计面向对象程序设计(OO)面向方面程序设计(AOP),2019/11/19,类和对象(上),4,对象1,对象就是我们周围的各种各样的事物。例如:衣服、盘子、宠物、朋友、电脑等。每个对象都有一些状态(属性)。例如:衣服:颜色,长度,面料。猫:名字,情绪,饥饿,。有些对象会作出一些行为。例如:猫:名字,情绪,疲劳,饥饿发怒,玩耍,吃食,睡觉。对象的行为会改变对象的状态。例如:玩耍疲劳=True睡觉疲劳=False吃食饥饿=False对象的状态会影响对象的行为。例如:if(饥饿=False)吃食returnfailure面向对象的程序设计与我们人类观察客观事物的模式相同:用类表示客观事物,用类中的变量表示事物的属性,用函数(方法)表示事物的行为,属性与行为相互作用。,2019/11/19,类和对象(上),5,抽象(分析与设计),抽象:就是对事物的状态、行为进行概括、总结、描述。软件开发过程可分为五个阶段:分析、设计、实现、测试、发布。抽象对应于软件工程的分析、设计阶段。分析:就是确定我们开发的系统想要实现什么。在分析阶段可以定义一组操作者,以及系统必须完成的行为。此外,还要定义一组主对象,系统在主对象之间完成操作、行为、交互。行为的描述要足够详细。设计:就是确定系统如何实现要达到的目标。在设计阶段,要生成操作者、行为、主对象的模型。例如,我们可以对一个轮船公司的软件工程作出下面的抽象:软件必须支持一个轮船公司。轮船公司保持一队运输集装箱的交通工具。在调出一个交通工具时,集装箱的重量是唯一的重要因素。轮船公司有两种类型的交通工具:卡车和内河驳船。集装箱用千克标重,计算交通工具的引擎功率时,需要用牛顿表示的交通工具的总重量。图形用户接口用来跟踪向交通工具中装载的集装箱。一些报表用来生成车/船队的记录。凭借这些需求分析,我们可以作出高水平的设计:系统中必须用对象表示公司、两种交通工具。公司是多个交通工具对象的集合。还应该包括报表、图形用户接口等对象。,2019/11/19,类和对象(上),6,类是对象的蓝图,如同绘图员可以绘制设备的蓝图,蓝图可以在制造实际设备时使用很多次。类是软件的蓝图,你可以用类,来实例化许许多多个别的对象。在类中定义了一套数据元素(属性)和一套行为(方法)。行为用来操作对象,以及完成相关对象之间的交互。属性和方法都叫做成员。例如交通工具对象必须保存两个属性:最大载重量和当前载重量;装载集装箱的方法要始终跟踪这两个属性。,2019/11/19,类和对象(上),7,面向对象的思想,面向对象的编程思想力图使对计算机语言中对事物的的描述与现实世界中该事物的本来面目尽可能的一致。类(class)和对象(object)是面向对象方法的核心概念。类是对一类事物描述,是抽象的、概念上的定义;对象是实际存在的该类事物的每个个体,因而也称实例(instance)。EverythingisObject:万事万物皆对象。,2019/11/19,类和对象(上),8,类的定义,类(Class)是用来描述一个对象(Object):类包括两方面的内容:属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作),2019/11/19,类和对象(上),9,类的定义(例CarObject.java),以一个“汽车”实体为例,来说明类的定义汽车的属性:出厂编号总数发动机类型最高速度当前状态当前速度油量汽车的基本操作:启动关闭加速减速识别类的简单规则:名词属性动词方法,2019/11/19,类和对象(上),10,类的定义(例CarObject.java),publicclassCarObjectprivateintengineType;privateintcurrentSpeed;publicCarObject()publicCarObject(intengineType,intbodyType,inttopSpeed)publicvoidturnOn()running=true;publicvoidaccelerate()privatevoidspeedUp(intamount),2019/11/19,类和对象(上),11,面向对象特性-封装性,封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的交叉感染,使软件错误能够局部化,大大减少查错和排错的难度。,2019/11/19,类和对象(上),12,通过类实现封装性,使用者对类内部定义的数据(对象的成员变量)的直接操作会导致数据的错误、混乱或安全性问题。Java中通过将数据封装、声明为私有的(private),再提供一个或多个公开的(public)方法实现对该属性的操作,以实现下述目的:隐藏一个类的实现细节;使用者只能通过事先定制好的方法来访问数据,可以方便地加入控制逻辑,限制对属性的不合理操作;便于修改,增强代码的可维护性;,2019/11/19,类和对象(上),13,通过类实现封装性(Get/Set方法),privateintengineType;publicintgetEngineType()returnthis.engineType;publicvoidsetEngineType(intengineType)if(engineType=V4,2019/11/19,类和对象(上),14,通过类实现封装(私有化内部方法),publicvoidaccelerate()/callspeedUpprivatevoidspeedUp(intamount),2019/11/19,类和对象(上),15,类构造器,构造方法是一个特殊的方法。Java中的每个类都有构造方法,用来初始化该类的一个对象。构造方法具有和类名相同的名称,而且不返回任何数据类型。重载经常用于构造方法。每个类都至少有一个构造器,如果没有定义
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年版综合性劳动合同样本
- 建筑租赁销售合同范本
- 农村建房签合同范本
- 大车驾校合同范本
- 2025版知名合同之居间合同
- 项目钢材供应合同范本
- 厨房包厨合同范本
- 2025学校食堂、小卖部承包合同书
- 景区游乐设施合同范本
- 2025合同法中合同试用期相关规定
- 《冬装销售技巧培训》课件
- 驻校教官培训课件
- 医院信息化调研报告范文
- 轴承装配组装SOP
- 过敏性休克完整版本
- DL∕ T 5100-1999 水工混凝土外加剂技术规程
- 合同未签订提前供货函模板
- 小学必背古诗词182首(带目录及释义)人教(部编版)
- 2024年东南亚一体式直流充电桩市场深度研究及预测报告
- 应急第一响应人理论考试试卷(含答案)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
评论
0/150
提交评论