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、总结
- 一个类中可以定义多个方法,方法之间属于并列关系,不可嵌套;
- 一个方法只做一件事;
- 优点
- 减少代码冗余
- 提高复用性
- 提高可读性
- 提高可维护性
- 方便分工合作