java方法的定义,重载与递归

一.方法-结构与定义

方法顾名思义就是用来解决一类问题的代码的有序组合,是一个功能模块。可以多次调用。
1.方法的结构

修饰符  返回值类型 方法名(参数){
           //方法体
}
例如:public static int add(int a,int b){
           return a+b;
}

2.方法的定义
1)修饰符:告诉编译器如何调用该方法。定义了该方法的访问类型
2)在定义方法的时候对于方法的返回值有以下的两类:
void:没有返回值;//可用throw new
RuntimeException抛出异常
数据类型(基本类型,引用类型)//用return返回。
3)方法名:是方法实际的名称。方法和参数共同构成方法名。
4)参数类型:用于限定调用方法时传入参数的数据类型(称为形参,被调用传递给参数的值成为实参)
3.定义的举例
例:定义一个方法完成年份是否闰年的判定?

public boolean isLeap(long year) {
		if(year<=0) {
			throw new RuntimeException("输入的年份不合法");
		}
		boolean f = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);
		return f;
	}

方法之间是可以互相调用的,调用方法的时候需要试用一对小括号。

二.方法-重载

1.方法重载概述:java同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,这种情况被称为方法重载。
2.方法重载特点
1)与返回值类型无关, 只看方法名和参数列表(包括参数的类型、参数的个数和参数的顺序)
2)调用方法时,jvm会通过参数列表的不同来区分同名方法
3.方法重载举例:

public int add(int a , int b){
      return a + b;
}
public int add(int a, int b, int c){
      return a + b;
}
public double add(double a , int b){
      return a + b;
}
public double add(double a , double b){
      return a + b;
}

通过上面的例子,可以看出重载是在一个类中,有相同的方法名,形参不同且与返回类型无关。重载可以让一个程序段尽量减少代码和方法的种类。

三.方法-递归

1.递归的概述:程序调用自身的编程技巧称为递归
2.递归的要素
1)方法内有边界条件(即方法终止条件)
2)定义算法
2.递归的应用
例1:计算一个数字的阶乘。
循环方式:

public void test() {
		int a = 5;
		System.out.println(JieChen(a));
	}	
public int JieChen(int a) {
		int s = 1;
		for (int i = 2; i <= a; i++) {
			s *= i;
		}
		return s;
	}

递归方式:

public void test() {
		int a = 5;
		System.out.println(R(a));
	}

/*
 * 递归
 */
public int R(int a) {
		if (a == 1) {//边界条件
			return 1;
		}
		return a * R(a - 1);//定义算法。R(a-1)将在R方法里多次递归,直到a-1=1时返回最终值。
	}

在这里插入图片描述

例2:使用递归判定数组中的元素是否有序(假设升序为有序)

public void test() {
		int[] a = { 5, 4, 3, 2, 1 };
        System.out.println(isSort(a, a.length));
	}
/*
* 递归
*/
public boolean isSort(int[] a, int index) {
		if (index == 1) {//边界条件
			return true;
		}
		if (a[index - 1] < a[index - 2]) {//算法
			return false;
		} else {
			return isSort(a, index - 1);
		}
	}

由上面的例子,可以看出递归的条件
1.解决问题的算法和思路相同
2.需要有边界条件
3.需要定义算法
递归可以使问题简单化。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值