Java方法笔记整理
-
是用一段用来完成特定功能的代码片段
-
Java都是值传递
方法的重载
-
定义:重载就是在一个类中,有相同的函数名称,但形参不同的函数
-
方法重载的规则:
-
方法名称必须相同
-
参数列表必须不同(个数不同、或类型不同、参数拍列顺序不同)
-
-
仅仅返回类型不同不足以成为方法的重载
-
-
实现理论:
-
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去匹配,如果没有匹配到,则报错。
package com.chen.scanner;
public class Demo12 {
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int c){
return a+b+c;
}
public static double add(int a,int b,double c){
return a+b+c;
}
public static double add(int a,double c, int b){
return a+b+c;
}
public static void main(String[] args) {
int add = Demo12.add(1, 2, 3);
System.out.println(add);
}
} -
可变参数
-
在方法声明中,在制定参数类型后面加上一个省略号(...)
-
一个方法中只能指定一个可变参数,他必须是方法的最后一个参数,任何普通的参数必须在它之前声明
package com.chen.scanner;
public class Demo13 {
//可变参数b
public void add(int...b){
int sum=0;
for (int i = 0; i < b.length; i++) {
sum+=b[i];
}
System.out.println(sum);
}
public static void main(String[] args) {
Demo13 demo13 = new Demo13();
demo13.add(1,2,3);
}
}
递归
-
定义:A方法调用A方法,自己调用自己
-
递归包含两个部分:
-
递归头:什么时候不调用自身方法,如果没有头,将陷入死循环
-
递归体:什么时候调用自身方法
-
-
注意点:递归适用于基数比较小的,如果基数大会占用很大内存,导致内存崩溃,因为递归多的话,就会无限进栈
package com.chen.scanner;
public class Demo14 {
//计算5!
public static void main(String[] args) {
System.out.println(fn(5));
}
public static int fn(int a) {
int result = 0;
if (a==1){
return 1;
}else {
result = a * fn(a-1);
return result;
}
}
}

浙公网安备 33010602011771号