版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2021/4/21第2章 现实世界VS Java世界了解面向对象的Java 2.1 万事万物皆对象理解对象模型 2.2 对象之间的差别事物的属性 2.3 万物皆有变化对象的方法 2.4 “物”以“类”聚什么是“类” 2.5 为什么要面向对象编程 2.6 程序中的对象Java的对象世界 2.7 内外有别对象的封装 2.8 绝知此事要躬行自己动手定义对象 2.9 小 结 2.10 习 题2021/4/222.1 万事万物皆对象理解对象模型 2.1.1 程序员眼中的世界现实世界中的对象 2.1.2 什么是“对象” 2.1.3 现象世界中的对象2021/4/232.1.1 程序员眼中的世界现实世界中的
2、对象 现实世界中的事物是怎么样的一回事,我们怎么去看待它们是另一回事。大家不要误会,我们不是在这里跟大家讨论“唯物与唯心”这一哲学问题的。只不过,下面开始向大家介绍的“对象”这一概念与此有关罢了。 听上去很玄,实际上这只是一种看待世界上所有事物的一种方式,一种理解现实世界的思维。2021/4/242.1.2 什么是“对象” 1. 对象的英文单词Object 2. 直观地认识一下对象世间万物都是一个个的对象,而对象就是这些事物的一个统称。看一下图2.1中的内容,可能会有更直观的认识。 图2.1 什么是对象2021/4/252.1.3 现象世界中的对象 1. 现实世界中的一些具体对象 2. 由现实
3、世界中的事物抽象为对象来看下面的图2.2,图中列出了3种类型的电脑,以及我们对这3个“对象”所关注的特性。 图2.2 各种对象只是为了抽象事物的特性2021/4/262.2 对象之间的差别事物的属性 2.2.1 何为对象的属性 2.2.2 对象与属性的关系2021/4/272.2.1 何为对象的属性1. 不同对象的属性值不同在图2.3中给出了对象“Laptop1”和“Laptop2”的一些属性值。这些值有时可以用来区别这两个不同的对象。 图2.3 不同属性值可以区分不同的对象 2. 不同对象具有不同的属性我们可以参考一下图2.4来看看不同对象的属性。2021/4/28 图2.4 不同的属性可以
4、区分不同的对象 3. 3. 属性与对象间的关系属性与对象间的关系下面接着来看另一个例子,如果只拿电子产品来举例子,那样会限制大家的思路,虽然大家对这类产品非常熟悉。但这会影响对“属性”这个概念的理解。不要觉得“属性”只存在于由实物抽象出来的对象当中,一些本来就属于抽象类型的对象也有相应的属性。 图2.5 对象与属性之间的关系2021/4/292.2.2 对象与属性的关系 我们所关注的对象属性中,对于任何一个属性都具有3个方面:属性所属的对象、属性名称、属性的值。继续看图2.6,PC1和PC2这两个对象所拥有的属性名称都是一样的,只是某些个别的属性值不相同。我们可以根据这些不同属性的值来确定这两
5、个对象是不相同的。 图2.6 对象的属性值可以发生变化2021/4/2102.3 万物皆有变化对象的方法 2.3.1 对象的方法定义 2.3.2 对象方法的一个示例2021/4/2112.3.1 对象方法的定义1. 什么是方法2. 方法与对象间的关系,如图2.7所示。3. 对象的变化与对象的方法。 图2.7 对象Cat和Dog的方法2021/4/2122.3.2 对象方法的一个示例 1对象与方法的例子 图2.8中列出的一个对象AirConditioner,以及它的3个属性和对应的5个方法。这些属性和方法已经可以抽象出一个简单的“空调”对象,我们忽略了空调的其他所有特性及参数等,只来关心它的最主
6、要的功能调节室内温度。 图2.8 对象的属性和方法2021/4/213 2. 2. 方法的具体过程方法的具体过程 图2.9中描述出了空调从开机工作直到用户切断电源、停止工作的整个过程所涉及的方法。 图2.9 空调对象工作过程中所用的方法2021/4/2142.4 “物”以“类”聚什么是“类” 2.4.1 为什么要定义“类”这个概念 2.4.2 什么是“类”,类与对象的关系 2.4.3 “类”与“类”之间的关系2021/4/2152.4.1 为什么要定义“类”这个概念 1对象要由类来定义 对象只是现实世界中的一些具体事物的抽象。需要在抽象的过程中,对现实世界中的这些对象有个明确的定义,如图2.1
7、0所示。 图2.10 类定义对象,就像饼干模具生产饼干2021/4/2162 2类可以用来抽象一些对象的共同特征类可以用来抽象一些对象的共同特征在图2.11中,一共给出了3个具体的对象,它们分别为3台不同类型的计算机,但它们都具有“计算机”这一类别的所有共同特征,可以说这3个对象都属于“计算机”这一个类别。 图2.11 由一些对象可以抽象为“类”3 3通过类的层次可以更清晰地表述对象间的关系通过类的层次可以更清晰地表述对象间的关系 图2.12 兰科植物的分类图2021/4/2172.4.2 什么是“类”?类与对象的关系1. “类”的定义2. 从“类”具体化到对象图2.13中给出了更多的由类具体
8、到对象的例子。从这个图中也可以看到,现实中的所有事物都可以抽象为类。任何类都可以具体化为一个相应的对象。 图2.13 类与对象的关系2021/4/2182.4.3 “类”与“类”之间的关系 在类的结构图中,由于上一层的类是由下面一层的类抽象来的(最下面一层除外,它们是直接由对象抽象而来的),所以,可以得出这样的结论:在下面一层的类中,包括上面所有类的特征。除此之外,下面一层的类还有可能包含上一层的类所没有的其他特征。这可以从类的定义及“类是由其他对象或类的共同特征所组成的”得出。2021/4/2192.5 为什么要面向对象编程 2.5.1 面向对象有什么好处 2.5.2 面向对象编程的特点20
9、21/4/2202.5.1 面向对象有什么好处 1. 对象为我们提供了模型化的好处在图2.14中可以看到汽车、图纸与模型之间到底是如何同“类”与“对象”相互一一对应的。 图2.14 事物、类和对象 2. 对象可以方便地进行信息隐藏 3. 对象可以有统一的外部接口 4. 定义好的类特征可以重用2021/4/2212.5.2 面向对象编程的特点 1. 1. 数据抽象数据抽象 2. 2. 过程抽象过程抽象 3. 3. 封装特性封装特性 4. 4. 可继承性可继承性 5. 5. 多态特性多态特性2021/4/2222.6 程序中的对象Java的对象世界 2.6.1 Java对象的模具Java的类 2.
10、6.2 从模具到成品用class定义对象 2.6.3 什么是Java中的对象 2.6.4 拿来主义extends的威力 2.6.5 对象的“使用说明”方法的实现2021/4/2232.6.1 Java对象的模具Java的类1Java中的类及其定义语法class 类名 成员数据 成员方法 2 2在在JavaJava中定义一个类中定义一个类类的具体定义如下:/* 类的名称 */class Circle / 定义一个表示圆的类/* 类的属性 */double x;/ 圆心的X轴坐标xdouble y; / 圆心的Y轴坐标ydouble radius; / 圆半径:R/* 类的方法 */double
11、getDiameter () / 计算圆的直径长度:2*Rdouble getCircumference () / 计算圆的周长:2*PI*Rdouble getArea() / 计算圆的面积:PI*R*Rdouble getCurvature () / 计算圆的曲率:1/R2021/4/2242.6.2 从模具到成品用class定义对象用一个类来定义对象比定义一个类要简单得多,主要的工作都在定义类的时候完成了。在Java中,定义一个对象的语法格式为:类名称 对象名称;2021/4/2252.6.3 什么是Java中的对象在Java中使用对象属性或执行对象方法的语法格式如下:对象名.属性;对象
12、名.方法();图2.17中明确表示出对象作为一个类的实体在内存中的保存方式。对于每一个对象,它有着自己的属性值,这些值就保存在图2.17所示的对象保存位置当中。 图2.17 内存中的对象2021/4/2262.6.4 拿来主义extends的威力1“拿来主义”的思维2extend的威力语法格式:class 新类名 extends 原类名新增加的成员数据新增加的成员方法 图2.18 用UML表示的继承关系3.举例说明处在图2.18中最上面位置的类是下面3个类的父类,下面3个类都是由它继承而来的。从最上面的类图中可以看到哺乳动物类所包含的两个方法。2021/4/2272.6.5 对象的“使用说明”
13、方法的实现下面给出一个极为简单的包括方法实现的示例代码:/* 类的名称 */class Square / 定义一个正方形类/* 类的属性 */double sideLength;/ 正方形的边长/* 类的方法 */double getCircumference () / 计算正方形的周长:边长*4 return 4*sideLength;/ 方法getCircumference ()的实现部分double getArea() / 计算正方形的面积:边长*边长 return sideLength *sideLength; / 方法getArea()的实现部分2021/4/2282.7 内外有别对
14、象的封装2.7.1 公开还是保密访问控制关键字2.7.2 要遵纪守法对象的操作方式2021/4/2292.7.1 公开还是保密?访问控制关键字1 1defaultdefault友好的友好的2 2publicpublic公共的公共的3 3protectedprotected保护的保护的4 4privateprivate私有的私有的5 5定义定义JavaJava类类6 6权限类型权限类型2021/4/2302.7.2 要遵纪守法对象的操作方式1 1先从对象的属性开始先从对象的属性开始2 2如何调用对象的方法如何调用对象的方法3 3对数据的高效封装对数据的高效封装4 4封装之后的对象封装之后的对象2
15、021/4/2312.8 绝知此事要躬行自己动手定义对象 2.8.1 如何定义一个圆的类 2.8.2 如何定义一个圆的方法 2.8.3 查看运行的结果2021/4/2322.8.1 如何定义一个圆的类 把后面的代码都输入到Example2_1.java之后,在文件的所大目录下执行命令来编译这个Java程序文件: javac Example2_1.java 执行完上面这个命令之后,会在当前目录下面产生一个名为Example2_1.class的文件。这个文件就是Java字节码文件,还记得吗?然后再执行这个Java字节码程序: java Example2_12021/4/2332.8.2 如何定义一
16、个圆的方法 属性定义完了之后就是方法的定义,在这个例子当中,我们看到了两个私有的方法。分别为:distanceX()和distanceY(),它们两个只能被在这个类中定义的方法使用,不能被外面的Java程序直接使用。后面的公共方法distanceTo()定义中使用到了上面这两个私有方法,distanceTo()方法本身的访问权限是公共的,外界可以直接访问它。然后通过它会间接用到类的私有方法distanceX()和distanceY()。 Java主程序的代码请看光盘演示。2021/4/2342.8.3 查看运行的结果 上面的两节已经完成了一个圆的定义,下面大家可以自己用计算器验算一下咯。在调用这些方法时,Java会先计算出相应的结果,然后再把计算结果输出到屏幕上。 我们在这一章中只需要明白什么是面向对象的思维,以及Java中的对象和类是个什么样的概念。如何在Java中定义并使用它们,再就是对象中的属性和方法如何封装。2021/4/2352.9 小结 面向对象的思维方式是用另一个视角来看待并理解我们早已非常熟知的世界。这是对现实世界的另一种理解,这个办法可以带领大家进入Java的对象世界。从大家熟悉的日常生活中找到“对象”和“类”的例子,从而了解“对象”与“类”的概念。本章向大家介绍了Java的类和对象。知道
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年江苏泰州市姜堰区实验初级中学七年级下册语文独立作业一 含答案
- 主题教育诗歌汇编-1
- (正式版)DB15∕T 4365-2026 草木樨属种子扩繁技术规程
- 高级护理职业规划指南
- 2026浙江温州医科大学附属第一医院药学部临床药师招聘1人笔试备考题库及答案解析
- 金刚砂耐磨地坪专项施工方案
- 自贡市社会福利和康复治疗中心 2026年第一次编外人员招聘(17人)考试参考题库及答案解析
- 2026遵义医科大学第二附属医院第十四届贵州人才博览会引才3人工作考试备考试题及答案解析
- 2026年衢州市龙游县公开招聘体育教练员4人笔试参考题库及答案解析
- 2026年上海市建平中学西校教师招聘(第二批次)考试备考题库及答案解析
- 公共数据共享安全保密协议模板
- 公众责任险及财产一切险调查情况
- 五郎河流域特性分析
- 客户资信调查表三篇
- 微生物次级代谢及调节
- RB/T 040-2020病原微生物实验室生物安全风险管理指南
- GB/T 706-2016热轧型钢
- GA/T 1710-2020南水北调工程安全防范要求
- 危险化学品MSDS(叔丁醇)
- DB11∕994-2021 平战结合人民防空工程设计规范
- 数学分析(2)期末试题
评论
0/150
提交评论