方法
一、方法定义
最好一个方法只完成一个功能!
格式:
修饰符 返回值类型 方法名(参数类型 参数值){
方法体…
return 返回值;
}
//return 0;可以终止方法。
二、方法调用
- 调用方法1:静态调用。 static修饰后可以直接调用
public class Demo1 {
public static void main(String[] args) {
int sum = add(1,3);
System.out.println(sum);
}
//加法
//加static修饰符就可以直接在main方法中直接调用该方法
public static int add(int a, int b){
return a+b;
}
}
- 调用方法2: 非静态调用。实例化后,对象名.方法
快捷键:new Demo();按下alt+enter
public static void main(String[] args) {
//new实例化
Demo2 demo2 = new Demo2();
//对象名.方法
int sum = demo2.add(1,3);
System.out.println(sum);
}
//加法
public int add(int a, int b){
return a+b;
}
三、方法重载
一个类里面,有两个方法:名称必须相同,参数列表必须不同,返回值可以相同也可以不同
public static void main(String[] args) {
int sum1 = add(1,3);
double sum2 = add(10.1,10.2);
}
//add方法,参数类型int
public static int add(int a, int b){
return a+b;
}
//add方法,参数类型double
public static double add(double a, double b){
return a+b;
}
四、命令行传递参数
- main方法
public static void main(String[] args) {
for (int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
- 命令行执行
编译:cmd进入java代码所在目录,输入命令 javac xxx.java
执行:cmd进入src目录,输入命令 java 包名.xxx 参数
五、可变参数
在方法声明中,在指定参数类型后面加一个省略号(…)
注意:一个方法最多只能指定一个可变参数,并且要是最后一个参数!
public static void main(String[] args) {
Demo4 demo4 = new Demo4();
demo4.test(1,2,3,4,5);
}
public void test(int...i){
for (int i1 = 0; i1 < i.length; i1++) {
System.out.println(i[i1]);
}
}
六、递归
自己调用自己。
注意:空间占用大!影响性能!容易栈溢出!
-
递归头:什么时候不调用自身方法,没有递归头会死循环
-
递归体:什么时候调用自身方法
public static void main(String[] args) { System.out.println(fun(3)); } public static int fun(int n){ if (n==1){//递归头:边界条件 return 1; }else {//递归体 return n*fun(n-1); } }