- 3
- 0
- 约6.9千字
- 约 97页
- 2018-06-30 发布于四川
- 举报
java实用程序设计(西电版)第三章java面向对象的程序设计
3.1 面向对象的基本思想 1. 面向对象问题求解基本思想 所有编程语言都提供“抽象”方法。也可以说,使用一种编程语言所能解决的问题的复杂程度直接取决于抽象的种类及质量,这里的抽象种类指的是被抽象的对象是什么。早期的汇编语言是对底层机器的轻微抽象。后续发展起来的许多命令式语言(如FORTRAN、BASIC和C语言等)对汇编语言进行进一步的抽象。 2. 面向对象问题求解方法 面向对象方法的特点就在于,在建立问题空间的问题模型和解空间的机器模型的过程中,都使用了“对象”这一概念,使得机器世界中的面向对象模型与现实世界中问题的存在形态非常接近,从而简化了两种模型之间的映射。 3. 面向对象程序设计的特征 Smalltalk语言的发明人Alan Kay曾经将面向对象程序设计方法的特征总结为以下5个方面: (1) 一切皆对象。 (2) 程序是一系列对象的组合,对象间通过消息传递进行联系。 (3) 每个对象都有自身内存空间,内存空间由其他对象构成。 (4) 每个对象都有一种类型(type)。 (5) 同一类型的所有对象都能够接收相同的消息。 3.2 面向对象程序设计的基本概念 1. 对象、类与接口 3.1节已经介绍了对象实际上是问题空间中可以明确标识的实体,例如学生、汽车、手机等,这些实体在解空间中存在相应的抽象表示。面向对象程序设计中的对象是以现实世界的对象为模型构造的。每个对象都有自己的标识、状态和行为。 2. 封装与隐藏 对于支持大规模程序设计的通用编程语言来说,总会涉及程序的开发者与程序的使用者不重叠的情况。在C语言中,这种情况发生在函数库的开发时,而对于Java,类库的开发也存在类似的情况。我们将创建新数据类型的程序员称为“类开发者”,将使用这些数据类型的程序员称为“客户端程序员”。这一划分不是绝对的,最常见的情况是程序员在编程时既使用了别人创建的类,又使用了自己创建的类。 封装的意义包含以下三个方面: (1) 模块化:不同对象代码间相对独立,对象可以在系统中方便移动; (2) 保证数据对象的一致性:通过隐藏对象变量和方法实现,防止绕过接口更改成员变量; (3) 易于维护:开发者可随意更改私有变量和私有方法,而不会影响调用对象接口的其他程序。 3. 继承与复用 复用是现代程序设计语言都应实现的功能。对于命令式语言,如C语言,复用的对象处于代码和函数的层面,而对于Java语言,复用的对象主要是已定义的类。为了达到复用类的目的,使用的方法主要有组合和继承两种。 图3-1 类的继承示例 4. 多态性 1) 编译时多态 编译时多态通过方法重载(overloading)实现。方法重载是指在一个类中定义多个名称相同但参数不同的方法。参数不同指的是两方面的不同:参数类型不同或参数数量不同。 (1) 参数类型不同。以java.lang.Math类的max()方法为例,该方法包括如下版本: public static double Math.max(double a,double b); public static float Math.max(float a,float b); public static int Math.max(int a,int b); public static long Math.max(long a,long b); (2) 参数数量不同。以java.lang.String类的split()方法为例,该方法包括如下版本: public String[] split(String regex); public String[] split(String regex,int limit); 在程序中具体使用其中的哪个方法,是由编译器根据参数数量和类型决定的。虽然多个重载方法的参数列表必须不同,但它们的返回值、修饰符可以相同也可以不同。 2) 运行时多态 运行时多态是以继承性为基础的多态性,是在程序运行时动态产生的。有时,多态性也可以专指运行时多态。本节前面部分介绍的继承性主要描述父类与子类之间的关系,而多态性还要求在这种关系的基础上,将一个对象当作它所在类的父类的对象来看待。这种将子类看做它的父类的过程称为向上转型(或上塑造型,upcasting)。“向上”的意思是从类继承层次(如图3-1)的子类(一般在较下方)向父类(一般在较上方)转型。 3.3 Java中的对象与类 1. 类的结构与创建 类的基本结构可以表示为如下的类声明格式: 类是创建对象的模板。通过类的构造方法可以创建对象。例如,在例3-1的main()方法
您可能关注的文档
最近下载
- 雪地胎的选用与更换-2024年世界职业院校技能大赛一等奖展示PPT.pptx VIP
- 一种提高线性聚乙烯膜料耐候性及拉伸性能的复合助剂及其制备方法.pdf VIP
- 【新教材】人教版(2024)七年级下册英语教学计划.docx
- 2026年中国厨房剪市场调查研究报告.docx
- 第一单元第二课《山水合璧》教案 湘美版2025美术七年级下册.pdf
- 2026年月日历表 (每月一张 A4可打印).pdf VIP
- 智能体应用发展报告(2025).pdf VIP
- 企业微信使用管理规范及注意事项.docx VIP
- 基于ANSYS的感应加热数值模拟分析-机械制造及其自动化专业论文.docx VIP
- 2025年交通运输部所属事业单位招聘真题.docx VIP
原创力文档

文档评论(0)