Day04_java方法
值传递(java)和引用传递
埋个伏笔,现在我也不懂。
方法重载
重载就是在同一个类中,有相同的函数名称,但形参不同的函数。
重载规则
- 方法名称必须相同。
- 参数列表必须不同。(个数不同或参数类型不同或参数排列顺序不同)。
- 方法返回类型可以相同也可以不同。
- 仅仅返回类型不同不足以成为方法的重载。
命令行传参
利用命令行传参给main()函数。
package com.XXX.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]);
}
}
}
此时在Demo01.java所在文件夹下命令行运行javac Demo01.java
,生成Demo01.class文件。此时直接运行语句java Demo01.class
文件,会报错:
错误: 找不到或无法加载主类 Demo01.class
需在包com.XXX.method
所在文件夹下运行:java com.XXX.method.Demo01 Hello world!
,运行结果:
args[0]: Hello
args[1]: world!
可变参数
从JDK 1.5开始,java支持传递同类型的可变参数给某个方法。
- 在方法声明中,在指定参数类型后加一个省略号(…)。
- 一个方法中只能指定一个可变参数,且必须是方法的最后一个参数,任何普通的参数必须在它之前声明。
public static void max(int a,int b, double... numbers){
}
递归
利用递归计算阶乘。
public class Demo02 {
public static void main(String[] args) {
Demo02 test=new Demo02();
int result = test.test(10);
System.out.println(result);
}
public static int test(int n){
if (n==1) {
return 1;
}else{
return n*test(n-1);
}
}
}
尽量能不用递归就不用递归,因为递归会占用大量的内存。