第十三天学习记录
2021.3.25
学习内容来自B站up主遇见狂神说
方法
方法的重载
p47
重载就是在一个类中,有相同的函数名称,但形参不同的函数
重载的规则
- 方法名称必须相同
- 参数列表必须不同(个数、类型、排列顺序等)
- 返回类型可相同也可不相同
- 仅仅返回类型不同无法成为方法的重载
实现理论
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法
public class Demo01 {
public static int add(int a, int b){
return a+b;
}
/**方法重载*/
public static double add(double a, double b){
return a+b;
}
public static float add(float b, float a){
return a+b;
}
public int add(int a){
return a;
}
public static void main(String[] args) {
//静态方法可以直接通过 类名.方法名 来调用
int sum = Demo01.add(12,3);
System.out.println(sum);
//第二种调用方法的方式
//非静态方法需要new一个实例
Demo01 demo01 = new Demo01();
int sum2 = demo01.add(2);
System.out.println(sum2);
}
可变参数
p49
在方法声明中,在指定参数类型后加一个省略号(…)
一个方法只能指定一个可变参数,它必须是方法的最后一个参数,任何普通的参数必须在它之前声明
可变参数的本质就是数组
public class Demo02 {
/**可变参数*/
public void test(int x,int...i){
System.out.println(i[0]);
System.out.println(i[1]);
System.out.println(x);
}
public static void main(String[] args) {
Demo02 demo02 = new Demo02();
demo02.test(4,5,6);
}
}
public class Demo03 {
public static void printMax(int...numbers){
if(numbers.length==0){
System.out.println("你没有输入数字");
}
int result = numbers[0];
for(int i = 1; i<numbers.length; i++){
if (numbers[i]>result) {
result = numbers[i];
}
}
System.out.println("输入的数字中最大的数字是:"+result);
}
public static void main(String[] args) {
Demo03.printMax(1,5,6,184,656);
}
}