何谓方法
方法是语句的集合,它们在一起执行一个功能
Java方法类似其他语言的函数
方法的组成部:
-
修饰符(可以不用)
-
返回值
-
方法名
-
参数类型(方法也可不含参数)
-
方法体
方法定义、调用
public class Demo02 {
public static void main(String[] args) {
int max=max(10,10);
System.out.println(max);
}
//比大小方法(修饰符:public、static ,返回值类型:int,方法名:max)
public static int max(int num1 ,int num2){
int result = 0;
if (num1 == num2){
System.out.println("num1 == num2");
return 0;//终止方法
}
if(num1>num2){
result =num1;
}else {
return num2;
}
return result;
}
}
方法重载
方法可以同名,但参数必须不同(个数/类型,返回值类型可以不同)
public class Demo02 {
public static void main(String[] args) {
double max=max(20,10);
System.out.println(max);
}
//比大小方法(修饰符:public、static ,返回值类型:int,方法名:max)
public static double max(double num1 ,double num2){
double result = 0;
if (num1 == num2){
System.out.println("num1 == num2");
return 0;//终止方法
}
if(num1>num2){
result =num1;
}else {
return num2;
}
return result;
}
//比大小方法(修饰符:public、static ,返回值类型:int,方法名:max)
public static int max(int num1 ,int num2){
int result = 0;
if (num1 == num2){
System.out.println("num1 == num2");
return 0;//终止方法
}
if(num1>num2){
result =num1;
}else {
return num2;
}
return result;
}
}
//输出
20.0
命令行传参
可变参数(不定项参数)
在方法声明中,在指定参数类型中加一个省略号…
一个方法只能有一个可变参数
它必须是方法的最后一个参数
public class Demo04 {
public static void main(String[] args) {
Demo04 demo04 = new Demo04();//(new Demo04 快捷键:Alt+Enter)
demo04.test(1,3,5,7,9,5);
}
public void test(int... i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(i[2]);
System.out.println(i[3]);
System.out.println(i[4]);
System.out.println(i[5]);
}
}
递归
A方法自己调用自己,递归结构包含两部分:
- 递归头:什么时候不调用自身方法(如果没有头会陷入死循环)
- 递归体:什么时候调用自身方法
递归容易堆栈,能不用则不用
public class Demo06 {
//阶乘
public static void main(String[] args) {
System.out.println(f(6));
}
//1! 1
//5! 5*4*3*2*1
public static int f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}