学习任务:

视频学习定义带参的方法

动手定义带参的方法

阅读文档理解参数传递流程

下边的程序实现了代码的重用,在main方法中调用两次sum方法,我们发现不管调用多少次,sum方法只有一个,sum方法中的代码被重用了。


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

	public static void main(String[] args) {
		//调用sum方法
		sum();
		//调用sum方法
		sum();
	}
	public static void sum() {
		// 定义变量,存放累加值
		int sum = 0;

		// 实现1到10的累加
		for (int x = 1; x <= 10; x++) {
			sum = sum + x;
		}
		System.out.println(sum);
	}

}

仔细分析sum方法的功能是什么?

sum方法实现了求1到 10之间数的累加和。如何实现求1到 100之间数的累加和呢?那就需要再写一个sum2方法,实现求1到 100之间数的累加和,方法的内容类似下边的代码:

public static void sum2() {
		// 定义变量,存放累加值
		int sum = 0;

		// 实现1到100累加
		for (int x = 1; x <= 100; x++) {
			sum = sum + x;
		}
		System.out.println(sum);
}

sum2方法和sum方法的方法体内容基本相同,只是for的关系表达式不一样,一个是x <= 10,一个是x <= 100。

其实,我们可以把sum方法的功能定义的更通用一些,sum方法实现1到 n之间数据的累加和,n的值是在调用sum方法时传给sum方法的,当传入了10那么sum方法实现了求1到 10之间数的累加和,当传入100则实现求1到 100之间数的累加和,如下图:

image-20200805225313578

在main方法中共调用sum方法两次,第一次调用sum方法将10传入sum方法,第二次调用sum方法将100传入sum方法。

代码如下:


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

	public static void main(String[] args) {
		//调用sum方法,传入10,求1到 10之间数的和
		sum(10);
		//调用sum方法,传入100,求1到 100之间数的和
		sum(100);
	}
	public static void sum(int n) {
		// 定义变量,存放累加值
		int sum = 0;

		// 实现1到10的累加
		for (int x = 1; x <= n; x++) {
			sum = sum + x;

		}

		System.out.println(sum);
	}

}

sum方法定义了参数int n,运行上边的程序实现了求1到10之间数的和,以及求1到 100之间数的和,程序输出如下:

55
5050

参数是如何传入sum方法呢?在main方法中执行sum(10)是如何将10传入sum方法的?下图是参数传递流程:

image-20200805230421571

执行sum(10)即调用sum方法,此时在内存开辟sum方法区,将sum方法的参数n在方法区开辟一个变量空间,执行sum(10),由于sum方法有参数,编译器将10赋值给sum方法区的变量n,sum方法的参数n称为形参(形式参数),10称为实参(实际参数)。

执行sum(100)的过程和执行sum(10)类似,同样会在内存开辟sum方法区,在方法区开辟变量空间n,编译器将实参100赋值给sum方法的形参n。

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