学习任务:

视频学习定义重载方法

动手编写求累加和的方法

为什么会有重载方法?

重载方法使用同一个方法名字,方法的可读性及可用性更强,比如println方法,一看名字便知道是打印输出,并且println方法支持很多数据类型。

下边看一个例子:

需求:编写一个求累加和的方法,可以实现如下功能:

1)求1到 某个正整数的累加和。

2)给出一个数据区间范围,求这个范围的数的累加和,数据区间为正整数。

分析:

需求1和2都是求累加和,并且都是求某个数据区间的累加和,需要定义方法接收起始和截止参数,根据区间范围求累加和,并将计算出的累加和作为方法返回值返回。

如:向方法传入1和10,则求出1到10之间数的累加和。向方法传入2和100,则求出2到100之间数的累加和。

代码如下:


/**
 * 	面向过程编程-方法重载
 * @author 攀博课堂(www.pbteach.com)
 *
 */
public class FunctionDemo4 {

	public static void main(String[] args) {
		//求1到 2的累加和
		System.out.println(sum(2));
		//求2到 11的累加和
		System.out.println(sum(2,11));
		
	}
	/**
	 * 	求1到 end的累加和
	 * @param end 截至下标
	 * @return 累加和
	 */
	public static long sum(int end) {
		
		if(1>=end) {//参数合法性判断
			System.out.println("截至下标必须大于1");
			return -1;
		}
		return sum(1,end);
	}
	/**
	 * 	求start到 end的累加和
	 * @param start 开始下标 
	 * @param end 截至下标
	 * @return 累加和
	 */
	public static long sum(int start,int end) {
		if(start<=0 || end<=0) {//参数合法性判断
			System.out.println("开始下标 和截至下标必须是大于0的整数");
			return -1;
		}
		if(start>end) {//参数合法性判断
			System.out.println("截至下标必须比开始下标 大");
			return -1;
		}
		// 定义变量,存放累加值
		long sum = 0;

		//实现start到end的累加
		for (int x = start; x <= end; x++) {
			sum = sum + x;

		}
		return sum;
	}
}

执行流程如下:

image-20200806164735718

1)执行main方法中的sum(2)

2)main方法调用sum(int end)方法,传入参数2

3)执行sum(int end)方法中的sum(1,2)

4)sum(int end)方法调用sum(int start,int end)方法,传入参数1和2。

5)sum(int start,int end)方法计算1到2的累加和,返回给sum(int end)方法

6)sum(int end)方法将1到2的累加和返回给main方法

7)执行main方法中的sum(2,11)

8)main方法调用sum(int start,int end)方法,传入参数2和11。

9)sum(int start,int end)方法计算2到11的累加和,将累加和返回给main方法。

提问-攀博课堂
我要提问 不会就问,有效沟通
关注公众号,加入微信群交流提问。 攀博课堂官方公众号
问答列表,查看本知识点所有问题