Java中方法的定义传参重载与递归

Posted SSimeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中方法的定义传参重载与递归相关的知识,希望对你有一定的参考价值。

一、方法的定义

每个对象都有自己的行为,比如一只狗会跑会跑会叫等,我们把这些行为称之为方法,是动态的,可以使用这些方法来操作一个对象。
那么方法是怎样定义的呢?具体格式如下:

    修饰符 返回值类型 方法名([参数类型 参数名1, 参数类型 参数名2, ...])
    {
	执行语句;
	[return 返回值;]//若没有返回值,返回类型为void
	}

方法定义示例如下(此处返回int类型):

/**
	 * 方法为求两个数之和
	 * @param a
	 * @param b
	 * @return
	 */
	public int twoSum(int a,int b) {
		System.out.println("求两个数的和这个方法调用了呦!");
		return a+b;
	}

二、方法的参数

参数有“实参”和“形参”之分哦!那什么是形参,什么是实参呢?
执行者调用对象时传的是实参,方法接收的是形参。

形参和实参:

/**
 * 形参和实参
 * @author 蒙新
 *
 */
public class TandV {
	/**
	 * 方法为求两个数之和
	 * @param a
	 * @param b
	 * @return
	 */
	public static int twoSum(int a,int b) {
		System.out.println("求两个数的和这个方法调用了呦!");
		return a+b;
	}
	
	public static void main(String[] args) {
		int x=3,y=5;
		int sum=twoSum(x, y);//调用方法传参
		System.out.println(sum);
	}

}

总结:此时x和y就是实参,a和b就是形参。把x的值3赋给了a,把y的值5赋给了b。

注意:在有些方法中会牵扯对形参的数据进行操作,有时会改变形参变量的值,但是不会影响实参的值哦!

三、方法的重载

重载的定义:

同一个类中
包含了两个或两个以上方法名相同
方法的参数不同(个数、顺序、类型),
这就是方法的重载。

注意:
方法的返回值不作为重载的依据,编码规范要求重载方法的返回类型相同

示例:

//方法的重载
public class TestOverLoad {

	public static void main(String[] args) {
		System.out.println(add(1, 2));
		System.out.println(add(1, 2, 3));
	}
	/**
	 * 求两个数之和
	 * @param x
	 * @param y
	 * @return
	 */
	public static int add(int x, int y) {
		return x + y;
	}
	/**
	 * 求三个数之和
	 * @param x
	 * @param y
	 * @param z
	 * @return
	 */
	public static int add(int x, int y, int z) {
		return x + y + z;
	}

}

四、方法的递归

递归的定义:递归就是自己调用自己。递归必须有结束条件,没有结束条件一定会发生栈内存溢出错误

常见的递归算法有:阶乘、斐波那契数列等。
(1)阶乘:

/*阶乘的递归算法*/
public long multiply(int n) {
		if (n <= 1) {
			return 1;
		} else {
			return n * multiply(n-1);
		}
	}

(2)斐波那契数列:

/** 
     * 递归算法  
     * 斐波那契数列第n项 
     * @param n  
     * @return 
     */  
    public static int fib(int n) {  
        if (n == 1 || n == 2) {  
            return 1;  
        }  
        return fib(n - 1) + fib(n - 2);  //本项等于前两项之和
    }  

以上是关于Java中方法的定义传参重载与递归的主要内容,如果未能解决你的问题,请参考以下文章

10方法的定义和重载和递归

Java基础之方法的调用重载以及简单的递归

构造方法和方法重载 this关键字 方法的传参和递归调用

JavaSE 方法的使用

Java 基础语法方法的使用

Java方法 - 方法重载 - 递归