Java 实用程序设计第3章 Java面向对象程序设计.ppt

Java 实用程序设计第3章 Java面向对象程序设计.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java 实用程序设计第3章 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()方法

您可能关注的文档

文档评论(0)

bokegood + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档