java语言中的方法

1、方法的定义

#什么是方法呢?

方法就是实现特定功能的一段代码,可反复使用,以降低代码的冗余度。

方法在C语言和c++中叫函数。

语法:
访问修饰符 返回值类型 方法名称(参数类型1 参数名称, 参数类型2 参数名称){
方法主体(功能代码)
return 返回值 ;
}

#我的第一个方法

public static int Test(int a,int b){
	//返回a+b的结果
	return a + b;
}



2、方法的调用

上面定义了一个方法,那怎么进行调用呢?

public class Main {
	public static void main(String[] args) {
		//1、调用方法Test,将实参传给方法Test
		//3、将方法Test返回的结果赋给sum
		int sum = Test(10,20);
		//4、输出sum的值
		System.out.println("sum is:" + sum);
    }
    public static int Test(int a,int b){
		//2、返回a+b的结果
		return a + b;
	}
}
注意:调用方法时,会优先执行方法内部代码,结束后,返回到方法调用处,继续向下执行。

3、方法的重载

#什么是方法的重载呢?

方法的重载就是在同一个类中,方法名相同,参数类型和参数个数不相同。

public class Main {
    public static void main(String[] args) {
        int sum1 = Test(10,20);
        System.out.println("sum is:" + sum1);
        double sum2 = Test(10.5,20.5);
        System.out.println("sum is:" + sum2);
        int sum3 = Test(10,20,30);
        System.out.println("sum is:" + sum3);
    }
    public static int Test(int a,int b){
        //返回a+b的值
        return a + b;
    }
    //方法名相同,参数类型不同
    public static double Test(double a,double b){
        //返回a+b的值
        return a + b;
    }
    //方法名相同,参数个数不同
    public static int Test(int a,int b,int c){
        //返回a+b+c的值
        return a + b + c;
    }
}
注意:方法允许重载,不允许重复定义。

4、方法的参数

#调用方法时,所传入的数据被称为“参数”。

#方法的参数可以让代码功能更灵活、普适性更高,易于修改及维护。

(1)形参语法

定义语法:
public static void 方法名称( 形式参数 ){
//方法主体
}
// “形参”等价于“局部变量的声明”。

(2)实参语法

调用语法:

方法名称( 实际参数 );
//实参”等价于“局部变量的赋值”。

(3)有参与无参

#方法中定义了形参,调用方法就必须传递实参,实参的类型和顺序必须跟形参一致。

public class Main {
    public static void main(String[] args) {
        int sum = Test(10,20);
        System.out.println("sum is:" + sum);
        Test();
    }
    public static int Test(int a,int b){
        System.out.println("这是有参!");
        return a + b;
    }
    public static void Test(){
        System.out.println("这是无参!");
    }
}



5、方法的返回值

#什么是方法的返回值呢?

方法的返回值就是方法执行后的返回结果。

#方法执行后,一些情况下无需返回结果;另一些情况下则必须返回结果。

例如:

存款操作无需返回结果。

取款操作必须返回结果。

#什么时候用到返回值,什么时候用不到返回值呢?

该方法的返回值类型为int或不为void时,就必须用到return返回值。

代码示例:

public class Main {
    public static void main(String[] args) {
        System.out.println("sum is:" + Test(10,20));
    }
    //返回值类型为int,所以必须有return
    public static int Test(int a,int b){
        int sum = a + b;
        return sum;
    }
}

代码示例:

该方法的返回值类型为void时,就用不到return返回值。

public class Main {
    public static void main(String[] args) {
        Test();
    }
    //返回值类型为void,不用return
    public static void Test(){
        System.out.println("没有返回值!");
    }
}



6、方法的优点

(1)减少代码冗余

(2)提高复用性

(3)提高可读性

(4)提高可维护性

(5)方便分工合作

7、递归

#什么是递归?

递归就是解决具有既定规律的问题时,在方法内部再次调用自身方法的一种编程方式。

#何时使用递归?

(1)当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己。

(2)使用循环解决的常规问题,都可以替换为递归解决。

代码示例:

#循环阶乘

public class Main{
    static int num = 5;
    public static void main(String[] args){
        System.out.println(num + "的阶乘是:" + Test(num));
    }
    public static int Test(int n) {
        if(n== 1){
            return 1;
        }
        return n*Test(n-1);
    }
}