java方法的介绍以及运用
方法
-
定义:类似于其他语言中的函数,是一段用来完成特定功能代码片段,方法包含一个方法头和一个方法体。
-
一个方法中所有部分:
- 修饰符
- 返回值类型
- 方法名
- 参数类型:
- 形式参数:用来定义方法的参数
- 实际参数:用来实际调用传递的参数
- 方法体
-
方法的调用:
-
对象名.方法名(实参列表)
-
当方法返回是一个值时,方法调用常常被当做一个值
-
当方法返回的是void,方法调用一定是一条语句。
System.out.print("hello,man")
-
例子:比较输入的两个数字大小:
//比大小方法 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("两次输入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数"); int num1 = scanner.nextInt(); System.out.println("请输入第二个数"); int num2 = scanner.nextInt(); int max = max(num1,num2); System.out.println("最大的数为:"+max); }
-
-
方法的重载
-
重载就是在一个类中有相同的函数名称,但是参数(形参不同)的参数。
-
方法重载规则
- 方法名称必须相同
- 参数列表必须不同,如(个数、类型、参数排列顺序不同)
- 方法的返回值类型可以相同也可以不同
- 仅仅返回类型不同不足以称为方法的重载
-
实现理论:方法名称相同时,编译器通过调用方法的参数个数,参数类型等去逐个匹配,以选择对应的方法,如果匹配失败则编译器报错:
//比大小方法 public static int max(int num1,int num2){ int result = 0; if (num1==num2){ System.out.println("两次输入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } //参数类型不同 public static double max(double num1,double num2){ double result = 0; if (num1==num2){ System.out.println("两次输入大小相同"); return 0; } if (num1>num2){ result = num1; }else { result = num2; } return result; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数"); int num1 = scanner.nextInt(); System.out.println("请输入第二个数"); int num2 = scanner.nextInt(); int max = max(num1,num2); //double max = max(num1,num2);通过调用不同类型的参数,编译器选择相应的方法去执行 System.out.println("最大的数为:"+max); }
-
-
可变参数(不定项参数)
-
在指定参数类型后加上省略号(...)
-
一个方法中只能指定一个可变参数,且必须放在最末尾,其他任何参数必须在他之前声明。
//比大小方法 public static void max( double... number) {//可变长参数 if (number.length == 0) { System.out.println("你没有输出任何数"); return; } double result = number[0]; //排序 for (int i = 0 ;i<number.length;i++){ if (number[i]>result){ result = number[i]; } } System.out.println("最大的数为:"+result); } public static void main(String[] args) { max(34,35,2,8,99);//调用参数时,参数个数可以任意设置,他的本质就是数组 max(new double[]{1,5,2,4,9,}); }
-
-
递归:(方法调用自己本身)
-
例子:输入一个数,输出该数的阶乘
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int i = scanner.nextInt(); System.out.println(f(i));//打印函数值 } public static int f(int i){ int resoult=0; if (i ==1){ resoult=1; }else { resoult= i*f(i-1);//递归,当条件满足时继续调用f方法。 } return resoult; } -
一般不建议用递归,使用的前提是我们调用函数时的基数小,比如上面例子中的i当i较小的时候使用,如果较大会占用大量的内存。
-

浙公网安备 33010602011771号