一、如何定义java中的方法
所谓方法,就是用来解决一类问题的代码的有序组合,是一个功能模块。方法方便代码的复用。
语法:
1、 访问修饰符:方法允许被访问的权限范围, 可以是 public、protected、private 甚至可以省略 ,其中 public 表示该方法可以被其他任何代码调用
2、 返回值类型:方法返回值的类型,如果方法不返回任何值,则返回值类型指定为 void ;如果方法具有返回值,则需要指定返回值的类型,并且在方法体中使用 return 语句返回值
3、 方法名:定义的方法的名字,必须使用合法的标识符
4、 参数列表:传递给方法的参数列表,参数可以有多个,多个参数间以逗号隔开,每个参数由参数类型和参数名组成,以空格隔开 。
根据方法是否带参、是否带返回值,可将方法分为四类:
1)无参无返回值方法
2)无参带返回值方法
3)带参无返回值方法
4)带参带返回值方法
方法重载:
发生在同一个类中,定义了若干个方法名称相同,参数列表不同(参数的个数或类型),与返回值无关的方法。
例如:我们要求int类型的数字之和,还有double类型的数字之和就可以定义俩个名字都为sum而返回值类型不同的方法。
我们使用的println()就是方法重载。
public class Exercise {
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a, b);
System.out.println("ret = " + ret);
double a2 = 10.5;
double b2 = 20.5;
double ret2 = add(a2, b2);
System.out.println("ret2 = " + ret2);
double a3 = 11.5;
double b3 = 12.5;
double c3 = 13.5;
double ret3 = add(a3, b3, c3);
System.out.println("ret3 = " + ret3);
}
public static int add(int a, int b) {
return a + b;
}
public static double add(double a2, double b2) {
return a2 + b2;
}
public static double add(double a3, double b3, double c3) {
return a3 + b3 + c3;
}
}
二丶方法递归
1.递归的概念
一个方法在执行过程中调用自身,就称为"递归".
递归相当于数学上的"数学归纳法",有一个起始条件,然后有一个递推公式.
例如,我们求N!
起始条件:N=1的时候,N!为1,这个起始条件相当于递归的终止条件.
递归公式:求N!,直接不好求,可以把问题转成N! = >N*(N-1)!
代码示例:
public class Exercise {
public static void main(String[] args) {
int num = 5;
int ret = factor(num);
System.out.println("ret = " + ret);
}
private static int factor(int num) {
if(num == 1){
return 1;
}
return num*factor(num-1);
}
}
//执行结果
ret = 120
接下来说一说哪种场景下可以使用递归来解决问题:
1.大问题可以拆分为多个子问题的解.(递)
2.拆分后的子问题和原问题除了数据规模,其他解决思路完全相同.
3.存在递归的终止条件(归)
浅谈一下如何写出递归代码:
1.一定要关注方法的语义(定义出来的方法能干啥事,不要纠结具体人家咋实现),我们关心的是如何利用这个方法帮助我解决问题.
2.当前我只能干啥,就在本方法中处理,处理不了的问题交给这个函数
3.将结果进行拼接.