java语言中的方法
1、方法的定义
#什么是方法呢?
方法就是实现特定功能的一段代码,可反复使用,以降低代码的冗余度。
方法在C语言和c++中叫函数。
语法:
访问修饰符 返回值类型 方法名称(参数类型1 参数名称, 参数类型2 参数名称){
方法主体(功能代码)
return 返回值 ;
}
#我的第一个方法
public static int Test(int a,int b){
//返回a+b的结果
return a + b;
}
2、方法的调用
上面定义了一个方法,那怎么进行调用呢?
public class Main {
public static void main(String[] args) {
//1、调用方法Test,将实参传给方法Test
//3、将方法Test返回的结果赋给sum
int sum = Test(10,20);
//4、输出sum的值
System.out.println("sum is:" + sum);
}
public static int Test(int a,int b){
//2、返回a+b的结果
return a + b;
}
}
注意:调用方法时,会优先执行方法内部代码,结束后,返回到方法调用处,继续向下执行。
3、方法的重载
#什么是方法的重载呢?
方法的重载就是在同一个类中,方法名相同,参数类型和参数个数不相同。
public class Main {
public static void main(String[] args) {
int sum1 = Test(10,20);
System.out.println("sum is:" + sum1);
double sum2 = Test(10.5,20.5);
System.out.println("sum is:" + sum2);
int sum3 = Test(10,20,30);
System.out.println("sum is:" + sum3);
}
public static int Test(int a,int b){
//返回a+b的值
return a + b;
}
//方法名相同,参数类型不同
public static double Test(double a,double b){
//返回a+b的值
return a + b;
}
//方法名相同,参数个数不同
public static int Test(int a,int b,int c){
//返回a+b+c的值
return a + b + c;
}
}
注意:方法允许重载,不允许重复定义。
4、方法的参数
#调用方法时,所传入的数据被称为“参数”。
#方法的参数可以让代码功能更灵活、普适性更高,易于修改及维护。
(1)形参语法
定义语法:
public static void 方法名称( 形式参数 ){
//方法主体
}
// “形参”等价于“局部变量的声明”。
(2)实参语法
调用语法:
方法名称( 实际参数 );
//实参”等价于“局部变量的赋值”。
(3)有参与无参
#方法中定义了形参,调用方法就必须传递实参,实参的类型和顺序必须跟形参一致。
public class Main {
public static void main(String[] args) {
int sum = Test(10,20);
System.out.println("sum is:" + sum);
Test();
}
public static int Test(int a,int b){
System.out.println("这是有参!");
return a + b;
}
public static void Test(){
System.out.println("这是无参!");
}
}
5、方法的返回值
#什么是方法的返回值呢?
方法的返回值就是方法执行后的返回结果。
#方法执行后,一些情况下无需返回结果;另一些情况下则必须返回结果。
例如:
存款操作无需返回结果。
取款操作必须返回结果。
#什么时候用到返回值,什么时候用不到返回值呢?
该方法的返回值类型为int或不为void时,就必须用到return返回值。
代码示例:
public class Main {
public static void main(String[] args) {
System.out.println("sum is:" + Test(10,20));
}
//返回值类型为int,所以必须有return
public static int Test(int a,int b){
int sum = a + b;
return sum;
}
}
代码示例:
该方法的返回值类型为void时,就用不到return返回值。
public class Main {
public static void main(String[] args) {
Test();
}
//返回值类型为void,不用return
public static void Test(){
System.out.println("没有返回值!");
}
}
6、方法的优点
(1)减少代码冗余
(2)提高复用性
(3)提高可读性
(4)提高可维护性
(5)方便分工合作
7、递归
#什么是递归?
递归就是解决具有既定规律的问题时,在方法内部再次调用自身方法的一种编程方式。
#何时使用递归?
(1)当需要解决的问题可以拆分成若干个小问题,大小问题的解决方式相同,方法中自己调用自己。
(2)使用循环解决的常规问题,都可以替换为递归解决。
代码示例:
#循环阶乘
public class Main{
static int num = 5;
public static void main(String[] args){
System.out.println(num + "的阶乘是:" + Test(num));
}
public static int Test(int n) {
if(n== 1){
return 1;
}
return n*Test(n-1);
}
}