什么是方法
示例代码:
package com.gavin.method;
public class Demo01 {
public static void main(String[] args) {
//调用方法
int sum = add(3, 5);
System.out.println(sum);
}
//计算a+b的值
public static int add(int a, int b) {
return a + b;
}
}
执行结果:
方法的定义和调用
示例代码:
package com.gavin.method;
public class Demo02 {
public static void main(String[] args) {
//调用方法
//3和5为实参
int num = max(3, 5);
System.out.println(num);
}
//比较两个数的大小
//a和b为形式参数
public static int max(int a, int b) {
return a > b ? a : b;
}
}
执行结果:
方法的重载
同一个类中的方法名相同,但是方法的返回值类型,传入参数的类型,以及方法传入参数的个数不同,这就叫做方法的重载
示例代码:
package com.gavin.method;
public class Demo02 {
public static void main(String[] args) {
//调用方法
double num = max(8.0, 6.0);
System.out.println(num);
}
//比较两个数的大小
public static int max(int a, int b) {
return a > b ? a : b;
}
//比较两个数的大小
//max的重载方法
public static double max(double a, double b) {
if (a == b) {
System.out.println("a==b");
return 0;
} else if (a > b) {
return a;
} else {
return b;
}
}
}
执行结果:
可以看出两个max方法都是用来比较两个数值的大小,但是传入的参数不同,以及返回的参数不同,一个是用来比较int类型数值的大小,一个是用来比较double类型数值的大小
命令行传递参数
示例代码:
package com.gavin.method;
public class Demo03 {
public static void main(String[] args) {
//遍历数组
for (int i = 0; i < args.length; i ++) {
System.out.println("args[" + i + "]=" + args[i]);
}
}
}
执行结果:
可变参数
示例代码:
package com.gavin.method;
public class Demo05 {
public static void main(String[] args) {
params(1,2,3);
}
public static void params(int...a) {
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
}
}
执行结果:
递归
用递归计算阶乘的示例代码:
package com.gavin.method;
public class Demo04 {
public static void main(String[] args) {
int num = recursion(5);
System.out.println(num);
}
//计算传入数据的阶乘
public static int recursion(int n) {
if (n == 1) {
return 1;
} else {
return n * recursion(n - 1);
}
}
}
执行结果:
递归方法执行步骤示意图: