方法集合
方法是语句的集合,可一起执行一个功能
格式: 修饰符 返回值类型 方法名(参数类型 参数名){
...方法体...
return 返回值 ;
//return 除了返回结果还有终止方法
}
修饰符:可选的,告诉编译器如何调用该方法,定义了该方法的访问类型。
返回值类型:returnValueType 返回值的数据类型,无返回值时 void
方法名:方法实际名称
参数: 实际参 / 形式参数 可以传递一些具体的值,也可以为空
方法体: 包含具体的语句,定义了该方法的功能
设计方法原则:保持原子性,一个方法只完成一个功能,这样有利于我们后期的扩展。
构造方法直接调用
public static void main(String[] args){
//实际参数 实际调用传给他的参数
int i = fangFaMing(2, 3);
System.out.println(i);
} // 形式参数,用来定义作用的
public static int(返回类型,可空 void) fangFaMing(int a,int b){
return a+b;
}
}
main(...)方法 {
里面要简洁
}
通过方法调用来使用
基本类型作为参数传递时,是传递值的拷贝,无论你怎么改变这个拷贝,原值是不会改变的
例子:
public class changeDemo {
public static void main(String[] args) {
int n = 3;
System.out.println("Before change, n = " + n);
changeData(n);
System.out.println("After changeData, n = " + n);
}
public static void changeData(int n) {
n = 10;
}
}
Before change, n = 3
After changeData, n = 3
例子
public static void main(String[] args) {
int max = max(2, 3);
System.out.println(max);
}
public static int max(int num1,int num2){
if(num1 > num2){
return num1;
}else{
return num2;
}
}
}
方法重载
-
重载名字必须相同 否则就不是一个方法不叫重载
-
参数类型必须不同(个数,类型,参数排列顺序不同)
-
方法返回类型可以相同也可以不同,机器自己判断使用对应的方法,
-
仅仅返回类型不足以成为方法重载。
//可任意int max = max(9,8,10);只要方法内部逻辑正确
int max = max(9, 8);
System.out.println(max);
}
public static int max(int num1, int num2) {
if (num1 > num2) {
return num1;
} else {
return num2;
}
}
public static int max(int num1, int num2, int num3) {
if (num1 < num2) {
if (num2 < num3) {
return num3;
} else {
return num2;
}
}
if (num1 > num3) {
return num1;
} else {
return num3;
}
}
}
命令行传递参数
可变参数
1.在方法声明中,指定参数类型后加一个省略号(...)
2.一个方法只能制定一个可变参数,它必须是方法的最后一个参数。
public static int test(double x,int... i){
System.out.println(i[0]);
return 0 ;
}
递归
递归就是 自己调用自己
可以解决一些简单的计算容易奔溃
递归结构包括两个部分
递归头:什么时候不调用自身方法,递归边界,结束条件,如果没有头,将陷入死循环。
递归体:什么时候需要调用自身方法。