方法的重载
-
重载就是在一个类中,有相同的函数名称,但形参不同的函数
-
方法重载的原则:
- 方法名称必须相同。
- 参数列表必须不同(个数不同或类型不同或参数排列顺序不同)。
- 方法的返回类型可以相同也可以不同。
- 仅仅返回类型不足以成为方法的重载。
命令行传参
在idea中输入代码:
package com.baidu.Method;
public class Demo02 {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println("args["+i+"]:"+args[i]);
}
}
}
打开当前代码所在文件目录 进入cmd
Microsoft Windows [版本 10.0.18363.2037]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\JavaSE\基础语法\src\com\baidu\Method>javac Demo02.java
E:\JavaSE\基础语法\src\com\baidu\Method>java Demo02
错误: 找不到或无法加载主类 Demo02
原因: java.lang.NoClassDefFoundError: com/baidu/Method/Demo02 (wrong name: Demo02)
E:\JavaSE\基础语法\src\com\baidu\Method>cd ..
E:\JavaSE\基础语法\src\com\baidu>cd ..
E:\JavaSE\基础语法\src\com>cd ..
//要返回到包的上一级目录
E:\JavaSE\基础语法\src>java com.baidu.Method.Demo02 //输入全名
E:\JavaSE\基础语法\src>java com.baidu.Method.Demo02 this is method//传入参数
args[0]:this
args[1]:is
args[2]:method
E:\JavaSE\基础语法\src>
可变参数
- JDK1.5开始,Java支持传递同类型的可变参数给一个方法;
- 在方法声明中,在指定参数类型后加一个省略号(...);
- 在一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
举个栗子
package com.baidu.Method;
public class Demo03 {
public static void main(String[] args) {
Demo03 demo03 = new Demo03();
demo03.test(1,2,3,4,5);
}
public void test(int... arr){
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[4]);
}
}
递归
递归就是:A方法调用A方法,就是自己调用自己。理解递归的最好办法就是先理解递归。
举个栗子:
package com.baidu.Method;
public class Demo04 {
public static void main(String[] args) {
long result=f(5);
System.out.println(result);//120
}
public static long f(int n){
if (n==1){
return 1;
}else {
return n*f(n-1);
}
}
}