Java方法
- 方法是语句的集合。
- 包含于类或对象中,在程序中被创建,在其他地方被引用
- 设计原则:一个方法只完成一个功能(原子性)
- 类似于函数。
- main方法保持简洁干净。
一般包含:
修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
参数类型:
- 形式参数:在方法被调用时用于接收外界输入的数据
- 实参:调用方法时实际传给方法的数据
Java都是值传递,没有引用传递。
方法的重载
在一个类中,有相同的函数名称,但是形参不同。
重载规则
- 方法名称必须相同。
- 参数列表必须不同。(个数不同或参数类型不同或参数排列顺序不同)。
- 方法返回类型可以相同也可以不同。
- 仅仅返回类型不同不足以成为方法的重载。
命令行传参
运行时传递消息,靠命令行传参给main()函数。
package com.XXX.method;
public class Commandline {
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);
}
}
}
尽量能不用递归就不用递归,因为递归会占用大量的内存。