云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 对象和类

对象和类

  • 62 次阅读
  • 3 次下载
  • 2026/1/12 2:31:18

第五章 对象和类

本模块是Java编程语言中讨论面向对象语句及面向对象特征两部分中的第一部分。

第一节 相关问题

讨论—下面的问题与本模块中出现的材料相关:

- - -

到目前为止学习的Java编程语言的元素存在于大部分语言中,不管它们是否是面向对象语言。 Java编程语言拥有什么特征使它成为一个面向对象语言? “面向对象”这个术语真正的含义是什么?

第二节 目 标

学完本模块,你便能:

- - - - - - - -

定义封装、多态性以及继承 使用private及public访问修饰符 开发程序段创建并初始化一个对象 对一个特殊对象调用一个方法 描述构造函数及方法重载 描述this引用的用途

讨论为什么Java应用程序代码是可重复使用的 在一个Java程序中,确认:

- -

package语句 import语句

85

- - - - -

类、成员函数以及变量 构造函数 重载方法 覆盖方法 父类构造函数

第三节 对象基础

面向对象程序(OOP)语句能使现实世界中的概念在计算机程序中变成模块。它包括构造程序的特征以及组织数据和算法的机制。OOP语言有三个特征:封装、多态性及继承。所有这些特征与类的概念是息息相关的。

5.3.1 抽象数据类型

当数据类型是由数据项组成时,可以定义许多程序段或方法在该类型数据上专门运行。当程序语言定义一个基本类型如整数时,它同时也定义了许多运算方法(如加法、减法、乘法和除法),因而它可以在该类型的实例中运行。

在许多程序语言中,一旦一个集合数据类型已经定义,程序员定义应用函数在该类型的变量上运行,该变量在代

码和集合类型(除非可能在命名规则中)之间无任何联系。

有些程序语言,包括Java,允许在数据类型的声明和操作该类型变量的代码的声明之间有紧密的联系。这种联系通常被称为抽象数据类型。

5.3.2 类和对象

Java编程语言中的抽象数据类型概念被认为是class。类给对象的特殊类型提供定义。它规定对象内部的数据,创建该对象的特性,以及对象在其自己的数据上运行的功能。因此类就是一块模板。Objects是在其类模块上建立起来的,很象根据建筑图纸来建楼。同样的图纸可用来建许多楼房,而每栋楼房是它自己的一个对象。

应该注意,类定义了对象是什么,但它本身不是一个对象。在程序中只能有类定义的一个副本,但可以有几个对象作为该类的实例。在Java编程语言中使用new运算符实例化一个对象。

在类中定义的数据类型用途不大,除非有目的地使用它们。方法定义了可以在对象上进行的操作,换言之,方法定义类来干什么。因此Java编程语言中的所有方法都属于一类。不象C++程序,Java软件程序不可能在类之外的全局区域有方法。

看一个类的例子:

class EmpInfo { String name;

String designation; String department; }

86

这些变量(name, designation和department)被称为类EmpInfo的成员。

实例化一个对象,创建它,然后如下所述对其成员赋值:

EmpInfo employee = new EmpInfo(); //creates instance employee.name = \ employee.designation = \ employee.department = \

EmpInfo类中的employee对象现在就可以用了。例如: System.out.println(employee.name + \ employee.designation + \ employee.department); 打印结果如下:

Robert Javaman is Manager at Coffee Shop

如下所述,现在可以在类中放入方法print( )来打印数据了。数据和代码可以封装在一个单个实体中,这是面向对象语言的一个基本特征。定名为print( )的代码段可以被作为一个方法而调用,它是术语“函数”的面向对象的称法。 class EmpInfo { String name;

String designation; String department;

void print() {

System.out.println(name + \ } }

一旦对象被创建并被实例化,该方法就打印出类成员的数据。按下述步骤实现: EmpInfo employee = new EmpInfo(); // creates instance

employee.name = \ employee.designation = \ employee.department = \ employee.print();// prints the details

看看集合数据类型MyDate 和对下一个日期赋值的函数tomorrow( )。 按如下所述在MyDate类型和tomorrow( )方法之间创建一种联系:

87

public class MyDate {

private int day, month, year; public void tomorrow() { // code to increment day } }

注—本声明中的“private”一词将在后文描述。 方法不是(作为分离的实体)在数据上运行,而数据(作为对象的一部分)对它本身进行操作。 MyDate d = new MyDate(); d.tomorrow();

这个注释表明行为是由对象而不是在对象上完成的。记住,可以用点记号来指向MyDate类中的字段。

这就意味着“MyDate对象的day字段由变量d.调用。于是,前面的例子“MyDate对象的tomorrow行为由变量d.调用” ,换言之,就是d对象对它本身进行tomorrow()运算。

方法是一个对象的属性并且能作为单个单元的一部分与它所在对象的数据发生密切的相互作用,这个是一个关键的面向对象的概念。(如果与这个概念不同,即,方法是分离的实体,从外部引入,作用在数据上。)message passing(消息传递)这个术语通常用来表达这样一个概念,即:指示一个对象在它本身数据上做某项工作,一个对象的方法定义了该对象能在它本身数据上做什么。

5.3.3 定义方法

定义方法 方法声明采取这样的格式: ([]) [throws ] {} public void addDays(int days) { } Java编程语言使用一种与其它语言,尤其是C和C++,非常相似的办法来定义方法。其声明采用以下格式:

([]) [throws ] {}

可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。

表示方法返回值的类型。如果方法不返回任何值,它必须声明为void(空)。Java技术对返回值是很严格的,例如,如果声明某方法返回一个int值,那么方法必须从所有可能的返回路径中返回一个int(只能在等待返回该int值的上下文中被调用。)

段能承载许多不同的修饰符,包括公共的、受保护的,以及私有的。公共访问修饰符表示方法可以从任何其它代码调用。私有表示方法只可以由该类中的其它方法来调用。受保护将在以后的课程中讨论。

允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。

88

搜索更多关于: 对象和类 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第五章 对象和类 本模块是Java编程语言中讨论面向对象语句及面向对象特征两部分中的第一部分。 第一节 相关问题 讨论—下面的问题与本模块中出现的材料相关: - - - 到目前为止学习的Java编程语言的元素存在于大部分语言中,不管它们是否是面向对象语言。 Java编程语言拥有什么特征使它成为一个面向对象语言? “面向对象”这个术语真正的含义是什么? 第二节 目 标 学完本模块,你便能: - - - - - - - - 定义封装、多态性以及继承 使用private及public访问修饰符 开发程序段创建并初始化一个对象 对一个特殊对象调用一个方法 描述构造函数及方法重载 描述this引用的用途 讨论为什么Java应用程

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com