1.什么是方法
方法就是一个代码片段,是能够模块化的组织代码,做到代码被重复使用,一份代码可以在多个位置使用,让代码更好理解。
2.方法定义和调用
格式:
修饰符 返回值类型 方法名(参数类型 参数名,...){ 方法体; (return 返回值;) }
修饰符:修饰符是可选的,定义了方法提的访问类型;
返回值类型:方法可能会返回值,returnValueType是方法返回值得数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键void。
方法名:是方法的实际名字,方法名和参数表共同构成方法签名。
参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型,顺序和参数的个数。参数是可选的,可以不包含任何参数。
-
形式参数:在方法被调用时用于接收外界输入的数据。
-
实参:调用方法时实际传给方法的数据。
方法体:方法体包含具体的语句,定义该方法的功能。
package com.TestMethod; public class Test1 { public static void main(String[] args) { int a=5; int b=8; //接收返回的值,其中a和b传递的实际参数 int re=method1(a,b); //输出返回的最大值 System.out.println("最大值是:"+re); method2(a,b); int sum=method3(); System.out.println("sum="+sum); method4(); } //定义一个方法进行比较两个数值的大小,把大的值进行返回--有参数有返回值 //形式参数是定义的int a和b public static int method1(int a,int b){ if(a>b){ //使用return把要返回的值返回,返回值的类型需和定义的返回值类型一致 return a; }else { return b; } } //把两个数相加,不进行返回--有参数无返回值 public static void method2(int a,int b){ System.out.println("a+b="+(a+b)); } //把两个数相加,不进行返回--有参数无返回值 public static int method3(){ int a=1; int b=1; return a+b; } //打印一句话--无参数无返回值 public static void method4(){ System.out.println("无参数无返回值"); } }
3.方法重载
方法重载:如果一个类中包含了两个及两个以上方法名相同,方法参数的个数,顺序或者类型不同的方法,则称为方法的重载。
怎么识别重载:
-
同一个类中,方法名称一样;
-
方法参数的个数,类型或者顺序不一致;(有多个方法名相同,编译器只能通过参数列表来表示,参数个数,类型,顺序不同均可表示)
-
与返回值,访问修饰符无关。
package com.TestMethod; public class Test2 { public static void main(String[] args) { int a=1; int b=2; double c=3.7; double d=2.9; int method = method(a, b); System.out.println(method); double method1 = method(c, d); System.out.println(method1); } public static int method(int a,int b){ if(a<b){ return b; }else { return a; } } public static double method(double a,double b){ if(a<b){ return b; }else { return a; } } }
4.可变参数
Java中,将名称相同,功能也相同,但是形参个数不同的多个函数,封装为某个类中的一个函数。
格式:
访问权限修饰符 返回值类型 方法名(数据类型... 变量名){ 方法体 }
注意:
-
数据类型... 变量名,里面的三个点的格式是固定的,不可以随便添加空格;
-
一个方法参数列表中只能有一个可变参数;
-
如果有多个参数,可变参数一定要放在最后面;
-
可变参数的本质其实就是一个数组,所以可以把它当做数组来用;
package com.TestMethod; public class Test3 { public static void main(String[] args) { int[] arr={1,2,3,4,5}; System.out.println(method(arr)); } public static int method(int... arr){ int sum=0; for (int i : arr) { sum+=i; } return sum; } }