java中的方法
概念:实现特定功能的一段代码,可反复使用。
1、定义语法:
public static void 方法名称(){
// 方法主体
}
- 方法名称:遵循标识符命名规范
- 方法主体:功能代码
- 应用:将需要在多个位置重复使用的一组代码,定义在方法内部;
2、定义的位置
-
方法定义在类的内部,与main方法并列
// 位置1 public class TestDefinitionFunction{ // 位置2 public static void main(String[] args){ // 位置3 } // 位置4 } // 位置5
可以将方法定义在主方法的前面或者后面,也就是位置2或者是位置4;
3、方法的定义与调用
-
方法的定义
public class TestFunction{ public static void main(String[] args){ System.out.println("test definition"); } // 定义:打印10个分隔符的函数 public static void printSign(){ for (int i = 1; i <=10; i++){ System.out.print("-"); } System.out.println(); } }
注意:方法的定义并没有改变执行结果,如何使方法执行,并达到预期效果?
-
方法的调用
在需要执行方法代码的位置,通过方法名称进行调用。
public class TestFunction{ public static void main(String[] args){ System.out.println("test definition"); printSign(); } // 定义:打印10个分隔符的函数 public static void printSign(){ for (int i = 1; i <=10; i++){ System.out.print("-"); } System.out.println(); } }
注意:调用方法时,会优先执行方法内部代码,结束后,返回到方法调用处,继续向下执行;
4、方法的参数
多数情况下,方法与调用者之前需要数据的交互;
调用者必须提供必要的数据,才能使方法完成相应的功能;
概念:调用方法时,所传入的数据被称为“参数”;
参数的类型:形参(形式参数)与实参(实际参数)
作用:方法的参数可以让代码功能更灵活、普遍性更高,易于修改及维护;
-
形参
定义语法:
public static void 方法名称(形式参数){ // 方法主体 }
形参等价于局部变量的声明
-
实参
调用语法:
方法名称(实际参数);
实参等价于局部变量的赋值
-
单个参数
举个例子
public class TestFunction{ public static void main(String[] args){ System.out.println("test definition"); printSign(5); } // 定义:打印count个分隔符的函数 public static void printSign(int count){ for (int i = 1; i <= count; i++){ System.out.print("-"); } System.out.println(); } }
定义形式参数:int count,当方法被执行时,循环count次。
调用带参方法时,必须传入实际参数,为形式参数赋值。
-
多个参数
举个例子
public class TestFunction{ public static void main(String[] args){ System.out.println("test definition"); printSign(5, "*"); } // 在多次调用printSign方法时,可以打印不同次数的符号 public static void printSign(int count, char sign){ for (int i = 1; i <= count; i++){ System.out.print(sign); } System.out.println(); } }
定义形参:int count,char sign,当方法被执行时,打印count次sign;
调用带参方法时,依次传入实参,类型、个数、顺序,必须与形参对应;
5、 如何定义参数
根据具体的业务需求,来定义方法的参数;
举个例子
public static boolean login(String username, String password, String checkNo){
}
// boolean 代表返回值是布尔类型
6、 返回值与返回值类型
概念:方法执行后的返回结果;
方法执行后,一些情况下无需返回结果;另一些情况下则必须返回结果
举个例子
存款操作无需返回结果,取款操作必须返回结果;
-
定义语法
public static 返回值类型 方法名称(形式参数列表){ // 方法主体 return value; // 返回值 }
规定返回值的具体类型(基本、引用、void),并根据需求返回一个结果(值)。
-
调用语法:
变量 = 方法名称();
变量类型与返回类型一致;
举个例子
需求:定义方法,计算两个整数的和,并返回结果,在main中打印;
public class TestReturn{
public static void main(String[] args){
int result = add(5, 10);
System.out.println(result);
// 在计算了两个整数的和之后,继续与20进行相加求和
int result2 = add(result, 20);
System.out.println(result2);
}
public static int add(int num1, int num2){
int sum = num1 + num2;
System.out.println("总和:" + sum);
return sum;
}
}
返回值类型:定义时,即约定了返回的结果类型;
返回值:与返回值类型匹配的具体结果,在return关键字的后面追加具体值;
接收返回值:方法调用的表达式,最终即代表了所返回的结果;
这里需要注意的是,返回值类型与接收的类型需要一致;且一个方法只能有一个返回值;
当有返回值的方法存在分支结构时,必须保证每一条分支都具有正确的返回值;
举个例子
public class TestResultValue{
public static void main(String[] args){
String result = isEven(10);
System.out.println(result);
}
public static String isEven(int num){
if(num % 2 == 0){
return "偶数";
}else{
return "奇数";
}
}
}
return
的两种用法:
-
应用在具有返回值类型的方法中;
-
return value;
// 表示结束当前方法,并伴有返回值,返回到方法调用处;return的后面不能有内容;public class TestReturn2{ public static void main(String[] args){ double result = calc(1.5, 10.2); System.out.println("计算结果:" + result); String str = isEven(10); System.out.println(str); } public static double calc(double a, double b){ double sum = a + b; System.out.println("程序结束"); return sum; // 结束当前方法,并伴有返回值,返回到方法调用处; } public static String isEven(int num){ if(num % 2 == 0){ return "偶数"; }else{ return "奇数"; } } }
-
-
应用在没有返回值类型(
void
)的方法中:-
return;
// 表示结束当前方法,直接返回到方法调用处;public static void show(){ for (int i =1; i <= 100; i++){ if(i == 50){ return; // 结束当前方法,直接返回到方法调用处; } } }
-
7、总结
- 一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套;
- 一个方法只做一件事;
- 优点
- 减少代码冗余
- 提高复用性
- 提高可读性
- 提高可维护性
- 方便分工合作