1. 方法的概述
也可以称为函数。它表示的是一段可以独立运行的代码,具有独立功能。当在程序中需要使用的时候可以通过函数(方法)的名字去调用。
- 书写位置:它必须在类的大括号中,不能写在main方法里面,要和main方法在关系上属于并列关系,我们自己定义的函数(方法)和main方法没有先后次序。
2. 方法的作用
可以提高程序中代码的复用性(复用性好:指的就是功能代码只要书写一次,就可以重复的调用)
3. 方法的定义格式
格式:
函数的修饰符 函数的返回值类型 函数的名( 接收的参数类型 参数名 , 接收的参数类型 参数名 …)
{
函数体代码;//具体完成相应功能的代码。
return 返回值; //返回值的类型必须是之前定义函数时所声明的函数的返回值类型
}
28. public static int getSum(int x,int y){
29. int sum = x+y;
30. return sum;
31. }
- 1.函数修饰符:照抄主方法 public static (静态方法只能访问静态方法,只要被static修饰的方法就是静态方法)
- 2.返回值类型:void 表示没有返回值,所以就没有对应的值返回到调用处,比如:任意的数据类型 (int),那么在函数体中必须写return int型的值;return表示结束当前函数,return后面的值:将整型的数据返回给调用处。
- 3.函数名:就是表示符的一种,a-z A-Z 0-9 $ _,规范跟变量是一致,首字母小写,多个单词,从第二个单词首字母要大写
- 4.参数列表:数据类型 变量名,数据类型 变量名…,传递进来的参数必须跟方法中的参数列表一致(类型,数量,顺序)
- 5.函数体:多个java语句的集合,表示方法中所有的代码
函数组成部分图解
注意:
① 当jvm在执行任意一个函数时,遇到return关键字,这时不管该函数的代码是否执行完成,当前这个函数都会结束;
② 在函数执行中遇到return需要返回,具体的返回位置就是在调用这个函数的地方。
③ 一个函数中,一个return语句,只能返回一个值。
④ 一个函数没有返回值,返回值类型一定是void ,但在函数中可以书写return语句,这时的return后面直接写分号,不要写任何数据。
⑤ 定义功能的时候,需要接收参数,这时在功能上一定要定义变量,然后接收具体的参数,这时参数的类型必须和传递的数据一定要保持一致。如果不需要接受数据,就可以省略参数。
4. 方法的重载
重载:要求必须在同一个类中,有多个同名的函数,它们的参数列表不同(参数列表不同,主要针对的参数的个数,类型,顺序不同),和返回值类型没有任何关系,这时我们称为函数的重载。
普及:形式参数:用于接收实际数据的变量;实际参数:实际参与运算的变量
- 方法的参数传递
-
当形式参数是基本数据类型时,在方法中改变了,并且没有返回值的情况下不会影响实参
上图可以看出:在main方法中调用了demo方法,而在调用的时候,是把main方法中的2个变量的值复制了一份传递给demo方法中的a和b变量,这时在demo方法中对a和b进行修改,仅仅只能修改demo方法中的a和b,而对main方法中的a和b无法进行操作。 -
如果形式参数是引用数据类型,传递的是地址,那么形式参数修改了,没有返回值类型的方法中对应实参也就修改了
引用的传递:当在main方法中把arr所指数组的引用传递给demo方法,那么在demo方法中的arr和main方法中的arr同时指向堆中的同一个数组空间,这时不管是在main方法中还是在demo方法中通过引用都可以去修改堆中的同一个数组。
5. 方法的使用案例
11.public class Test {
12.
13. public static void main(String[] args) {
14. int[] arr= {1,2,3,4,5};
15.
16. int sum = getSum(arr);
17. System.out.println("和值:"+sum);
18. }
19.
20. public static int getSum(int[] arr){
21. //定义一个int变量用来保存和值
22. int sum = 0;
23. //把数组中所有的内容都拿到,for遍历
24. for(int i = 0;i<arr.length;i++){
25. int temp = arr[i];//每个元素
26.// sum = sum+temp;
27. sum += temp;
28. }
29. return sum;
30. }
31.
32.}