一. 方法的基本用法
1.什么是方法
(1) 方法就是一个代码片段. 类似于 C 语言中的 “函数”.
方法的意义就是为了让代码变得简单
方法的构成: 访问修饰限定符 返回值 方法名(形式参数列表){
函数体;//不止一条语句
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n1 = scan.nextInt();
System.out.println("");
(2) 方法的调用:当前方法写完之后,在另一个方法内部进行调用的过程
//例:求1-100的和
public static int addSum(int n) {
int sum = 0;
for(int i = 0; i <= n; i++) {
sum = sum + i;
}
System.out.println(sum);
}
public static void main1(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
addSum(n);
}
注意事项:
1 实参给形参传递是按照值传递
2.实参和形参的类型需要匹配
3.参数的个数需要匹配
4.一般情况下不建议在方法内进行直接的打印
5 返回值相当于方法给你的响应接受这个响应
6返回什么样的类型,需要用什么去接收它
(3) 实参和形参的关系:形参相当于实参的一份拷贝
在Java当中实际上 只有按值传递。
但是这个值,可以是普通的值 也可以是引用类型(指针-》保存地址)
2. 方法的重载
(1) 方法名相同
(2)参数列表不相同(参数的个数或者参数的类型)
(3)返回值不做要求
public static void main(String[] args) {
int a = 10;
int b = 20;
int ret = add(a,b);
System.out.println("两个数的和是: " + ret);
double c = 12.5;
double d = 13.4;
double ret2 = add(c,d);
System.out.println("两个数的和是: " + ret2);
}
public static int add(int a,int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
3. 方法递归
一个方法在执行过程中调用自身, 就称为 "递归“
(1) 递归的原理:函数的运行需要开辟栈帧。只要运行一个函数,就需要在栈上开辟内存
例:递归求n的阶乘
public static void main1(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int ret = fac(n);
System.out.println("ret = " + ret);
}
public static int fac(int n) {
if(n == 1) {
return 1;
}
return n * fac(n - 1);
}
(2)递归的优点:
1.代码简洁
2.经常被用作处理复杂问题
3.逻辑很清楚
(3)递归的缺点:
1.会经常进行重复的运算
2.递归是一个非常耗费内存的。
3.栈上开辟内存,栈溢出的可能性变大
4.不易于思考