https://www.bilibili.com/video/BV12J41137hu/?p=45
重载就是在一个类中,有相同的函数名称,但形参不同的函数。
方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。
package com.qing.method;
public class Demo01 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args[" + i + "]: " + args[i]);
}
}
}
D:\code\JavaSE\基础语法\src\com\qing\method>dir
驱动器 D 中的卷没有标签。
卷的序列号是 46DA-BD61
D:\code\JavaSE\基础语法\src\com\qing\method 的目录
2020/10/31 12:43 <DIR> .
2020/10/31 12:43 <DIR> ..
2020/10/31 12:43 231 Demo01.java
1 个文件 231 字节
2 个目录 307,004,313,600 可用字节
D:\code\JavaSE\基础语法\src\com\qing\method>javac Demo01.java
D:\code\JavaSE\基础语法\src\com\qing\method>java Demo01
错误: 找不到或无法加载主类 Demo01
D:\code\JavaSE\基础语法\src\com\qing\method>cd ../../../
D:\code\JavaSE\基础语法\src>java com.qing.method.Demo01
D:\code\JavaSE\基础语法\src>java com.qing.method.Demo01 Hello World
args[0]: Hello
args[1]: World
D:\code\JavaSE\基础语法\src>
package com.qing.method;
public class Demo02 {
public static void main(String[] args) {
new Demo02().printMax();
new Demo02().printMax(7.1, 3, 5);
new Demo02().printMax(new double[]{7.1, 3, 5});
}
//打印最大值
private void printMax(double... numbers) {
if (numbers.length == 0) {
System.out.println("numbers is empty");
return;
}
double max = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
}
System.out.println("max: " + max);
}
}
没有传参
max: 7.1
max: 7.1
递归就是自己调用自己。
最重要的是递归思想。如果深度太大,不介意用递归,会造成内存奔溃。
package com.qing.method;
public class Demo03 {
public static void main(String[] args) {
System.out.println("5! = " + f(5));
System.out.println("4! = " + f(4));
System.out.println("3! = " + f(3));
}
//递归,计算阶乘
//阶乘:n! = n * (n-1) * (n-2)... * 1
private static int f(int n) {
if (n < 1) {
System.out.println("入参不能小于1");
return 0;
}
if (n == 1) {
return 1;
}
return n * f(n - 1);
}
}
5! = 120
4! = 24
3! = 6
原文:https://www.cnblogs.com/wl3pb/p/13917720.html