实验24--方法设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验24--方法设计

实验2.4--方法设计 2.4.1 实验目的 (1) 掌握方法的定义与调用关系。 (2) 理解方法定义的优势,加深对方法的参数传递与返回类型的理解。 (3)了解递归的概念及实现特点。 2.4.2 知识要点 方法是程序中完成特定功能的程序段,通过定义方法和多次调用方法可缩短代码的长度,实现代码复用,使整个应用代码结构清晰。 1? 方法的定义 修饰符 1 修饰符 2 ... 返回值类型 方法名(形式参数表) [throws 异常列表 ] ? ??{ ?????? ?方法体 ? ??}? 其中: (1) 方法头—--定义方法的访问特性(public)、使用特性(static)、返回类型、名称、参数、抛出异常等。 (2) 方法体—--实现方法的功能。 (3) 方法的返回类型与return语句的使用。 ????????? 除构造方法外,方法均需要定义返回类型,如果方法无返回值,则用void标识。 ????????? return语句用于将方法的结果返回给调用者。通常,return语句出现在方法的结尾。 通常,对于程序中的每个方法要添加注释,说明方法的功能以及关键实现描述。 例如,下面为方法的注释风格。 /** 判断某年是否为闰年, 闰年是年份为4的倍数,两个特殊情况是为100年或400的倍数 如果参数year是闰年,则返回true否则false?????? */ boolean isLeapYear( int year ) { ?? boolean y4 = ( ( year % 4 ) == 0 ) ; ?? boolean y100 = ( ( year % 100 ) == 0 ) ; ?? boolean y400 = ( ( year % 400 ) == 0 ) ; ?? return ( y400 || ( y4 ! y100 ) ); } 2? 方法的调用 方法调用的形式为: ??? 方法名(实际参数表) 其中: (1) 实参可以是常量、变量或表达式。相邻的两个实参间用逗号分隔。实参的个数、类型、顺序要与形参对应一致。 (2) 方法调用的执行过程是,首先将实参传递给形参,然后执行方法体。方法返回后,从调用该方法的下一个语句继续执行。 3? 方法的参数传递 Java方法参数传递就是将实参单元的内容传递给形参单元;根据参数类型分以下两种情形: (1)如果参数为基本类型数据,则实参和形参单元存储的均为数据本身;参数传递就是将实参的数据拷贝给形参单元,在方法内修改形参的值,不影响实参。 (2)如果参数为数组或对象,则参数单元存放的是引用地址,也就是将实参单元存放的地址拷贝给形参,这样实参和形参将指向同一数组或对象。对形参数组或对象的操作访问,实际上就是操作实参数组或对象。因此,在方法内修改参数的内容将影响实参。 4 递归问题 (1)递归就是方法内直接或间接调用自己。 (2)任何递归问题均要注意有一个停止点,也就是要有一个不再调用自己的出口。 例如:阶乘问题的递归方法 ??? static int fac(int n) { ??????? if (n==1) return 1;? //不再递归的出口 ??????? else ?????????? return ?n * fac(n-1);? //递归调用自己 } 以上程序也可以不要else,直接写成如下形式,思考为什么? ??? static int fac(int n) { ??????? if (n==1) return 1; ??????? return ?n * fac(n-1); } 编写递归方法注意先写特殊情形,后写递归情形。 (3)在程序中要尽量不用递归,因为递归的运行效率差。 2.4.3 样例程序 样例1:编制一个按参数提示从键盘获取一个字符串的方法,利用该方法读取两个整数,求这两个整数之间具有最多因子的数。 注:一个数的因子是指能除尽该数的数,包括1和自身。 【分析】要知道一定范围内谁的因子数量最多,所以,本例总体上是一个循环问题。但同时又是一个比较问题。要设法记下谁(n)拥有因子数量最多(number)。 【参考程序】 import java.io.*; public class manyfactor { ? public static void main(String a[]) { ???? int x=Integer.parseInt(inputString(整数1:)); ???? int y=Integer.parseInt(inputString(整数2:)); ???? if (xy) {? //交换x,y的值 ?????? int temp=x; x=y; y=temp;? //让x中存放小者,y中存放大者 ???? } ? ??? ?

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档