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