目录
方法的基本用法
方法调用
实参和形参的关系
方法的参数传递
没有返回值的方法
方法的重载(overload)
方法递归
递归
方法的基本用法
基本语法格式
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 ...]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参...);
方法调用
通过主方法调用 数据类型 变量 = 方法名称(参数)
定义方法的时候, 不会执行方法的代码, 只有调用的时候才会执行当方法被调用的时候, 会将实参赋值给形参参数传递完毕后, 就会执行到方法体代码当方法执行完毕之后(遇到 return 语句), 就执行完毕,回到方法调用位置继续往下执行一个方法可以被多次调用
实参和形参的关系
在调用有参方法时,实参 (值)会赋值给形参 (变量名)
public class Test {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
int sum = add(num1,num2);//num1,num2是实参
System.out.println(sum);
}
public static int add(int a,int b){//a,b是形参
return a+b;
}
}
方法的参数传递
Java方法中只有值传递,只是把实参的值复制一份给形参
swap中a和b的值互换,并不会改变main方法中的a,b
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 20;
swap(a,b);
System.out.println(a);
System.out.println(b);
}
public static void swap(int a,int b) {
int temp = a;
a = b;
b = temp;
System.out.println("swap方法中的a是"+a);
System.out.println("swap方法中的b是"+b);
}
}
//输出swap方法中的a是20
swap方法中的b是10
10
20
没有返回值的方法
如果方法没有返回值,使用void声明返回值类型,依然可以用return关键字
public class Test {
public static void main(String[] args) {
fun(10);
fun(30);
}
public static void fun(int num) {
if (num == 10) {
System.out.println("yes");
return;
}
System.out.println("no");
}
}
在没有返回值的方法中使用return,表示提前结束方法的调用
注意
Java中没有函数声明的概念,一旦定义了一个方法就必须写这个方法的实现 调用该方法与该方法的位置无关,可以在方法实现代码之前调用方法
方法的重载(overload)
在同一个类中,定义了若干个方法名称相同,参数列表不同(参数类型/参数个数),与返回值无关,这样的一组方法称为重载方法
public static double add(double a,double b){
return a+b;
}
public static int add(int a,int b){
return a+b;
}
public static int add(int a,int b,int C){
return a+b+c;
}
方法递归
递归
1.一个大问题可以拆分成多个子问题的解
2.拆分后的子问题和原问题除了数据规模不一样,解决思路完全相同
3.存在一个递归终止条件



