网站大量收购闲置独家精品文档,联系QQ:2885784924

Java程序设计技术第5章(第二版).ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 进一步讨论对象和类 本章内容 抽象数据类型 抽象数据类型 抽象数据类型是指基于一个逻辑类型的数据类型以及这个类型上的一组操作。每一个操作由它的输入、输出定义。抽象数据类型的定义并不涉及它的实现细节,这些实现细节对于抽象数据类型的用户是隐藏的 程序5-1给出了Date类型和tomorrow操作间建立的一种联系 定义方法 定义抽象数据类型后,需要为这个类型的对象定义操作,也就是方法。格式如下: 修饰符返回类型名字(参数列表)块 名字是方法名,它必须使用合法的标识符。 返回类型说明方法返回值的类型。 修饰符段可以含几个不同的修饰符,其中限定访问权限的修饰符包括public,protected和private。 参数列表是传送给方法的参数表。表中各元素间以逗号分隔,每个元素由一个类型和一个标识符组成。 块表示方法体,是要实际执行的代码段。 增加方法 程序5-2 Date类中增加daysInMonth()和printDate()方法 按值传送 “按值”传送自变量,即方法调用不会改变自变量的值 当对象实例作为自变量传送给方法时,自变量的值是对对象的引用,也就是说,传送给方法的是引用值。在方法内,这个引用值是不会被改变的,但可以修改该引用指向的对象内容。因此,当从方法中退出时,所修改的对象内容可以保留下来 传值实例 程序5-3 创建pt对象,方法内局部变量val赋初值11。调用方法changeInt()后,val的值没有改变。字符串变量str作为changeStr的参数传入方法内,当从方法中退出后,其内容也没有变化。当对象pt作为参数传给changeObjValue()后,该引用所保存的地址不改变,而该地址内保存的内容可以变化,因此退出方法后,pt对象中的ptValue改变为99f 重载方法名 如果需要在同一个类中写多个方法,让它们对不同的变量进行同样的操作,就需要重载方法名 一个方法区别于另一个方法的要素:方法名、参数列表及返回值。根据参数来查找适当的方法并调用,包括参数的个数及类型 方法的重载允许Java 在同一个类中可以定义相同的方法名,但需要具有不同的参数表。不只如此,在不同的类中也可以定义相同的方法名 重载方法两条规则 调用语句的自变量列表必须足够判明要调用的是哪个方法 自变量的类型可能要进行正常的扩展提升(如浮点变为双精度),但在有些情况下这会引起混淆 方法的返回类型可能不同 如果两个同名方法只有返回类型不同,而自变量列表完全相同则是不够的,因为在方法执行前不知道能得到什么类型的返回值,因此也就不能确定要调用的是哪个方法。重载方法的参数表必须不同,即参数个数或参数类型不同 对象的构造和初始化 说明了一个引用后,要调用new为新对象分配空间,也就是要调用构造函数 在Java中,使用构造函数(constructor,也称为构造方法)是生成实例对象的唯一方法。在调用new时,既可以带有变量,也可以不带变量,这要视具体的构造方法而定 调用构造方法时步骤如下: (1) 分配新对象的空间,并进行缺省的初始化。在Java中,这两步是不可分的,从而可确保不会有没有初值的对象 (2) 执行显式的成员初始化 (3) 执行构造方法,构造方法是一个特殊的方法 显式成员初始化 在成员说明中写有简单的赋值表达式,就可以在构造对象时进行显式的成员初始化 构造方法 构造方法是特殊的类方法,有着特殊的功能。它的名字与类名相同,没有返回值,在创建对象实例时由new运算符自动调用 为了创建实例的方便,一个类可以有多个具有不同参数列表的构造方法,即构造方法可以重载 构造方法不能说明为native,abstract,synchronized或final,也不能从父类继承构造方法 构造方法的特性 构造方法的名字与类名相同 没有返回值类型 必须为所有的变量赋初值 通常要说明为public类型的,即公有的 可以按需包含所需的参数列表 缺省的构造方法 每个类都必须至少有一个构造方法。如果程序员没有为类定义构造方法,系统会自动为该类生成一个缺省的构造方法 缺省构造方法的参数列表及方法体均为空,所生成的对象的属性值也为零或空。如果程序员定义了一个或多个构造方法,则将自动屏蔽掉缺省的构造方法。构造方法不能继承 缺省的构造方法例 class BankAccount{ String ownerName; int accountNumber; float balance; } ? public class BankTester{ public static void main(String args[]){ BankAccount myAccount = new BankAccount(); System.out.prin

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档