方法
在java中我们经常提到方法,而方法究竟是什么东西呢?
一个种子从种下到成熟分为六个步骤。
这六个步骤整体可以用来形容其他种子从种下到成熟,这个整体就是一个方法。
//定义两个变量
int a=10;
int b=20;
//获取两个数中的较大值
int max=a>b?a:b;
//输出结果
System.out.println("max:"+max);
将这三个步骤视为整体为方法。
什么是方法?
**方法(Method)**是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
是一段封装了特定功能的可重复使用的代码块。
方法用于执行特定的任务和操作,并可接受参数和返回结果。
注意:
方法必须先创建才可以使用,该过程称为方法定义。
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
方法的定义
定义方法:
<访问修饰符> <返回类型> <方法名>(<参数列表>) {
// 方法体代码
// 可选的返回语句
}
//举个栗子
public static void isName( ){
//方法体
}
<访问修饰符>:用于控制方法的可见性,例如:public、private、protected 或不写任何修饰符(默认可见性)。
<返回类型>:指定方法返回的数据类型,可以是任意类型,如果方法不返回任何值,则使用关键字 void。
<方法名>:方法的名称,应符合标识符命名规则。
<参数列表>:指定方法接受的输入参数类型和名称,多个参数使用逗号分隔。
方法的调用
调用方法:
方法名();
注意:
- 方法必须先定义后调用,否则程序会报错。
- 调用方法在main中调用。
下面是一个示例,演示如何定义和调用一个Java方法:
public class TestClass {
public static void main(String[] args) {
int result = sum(5, 3);
System.out.println("Sum: " + result);
}
public static int sum(int a, int b) {
return a + b;
}
}
在上面的示例中,我们定义了一个名为 sum 的方法,它接受两个整数参数并返回它们的和。然后,在 main 方法中调用 sum 方法,并将返回的结果存储在 result 变量中。最后,我们使用 System.out.println 方法输出结果。
运行上面的示例将输出:
Sum: 8
带参数方法的定义
- 格式:public static void 方法名(参数){......}
- 格式(单个参数):public static void 方法名(数据类型 变量名){......}
- 范例(单个参数):public static void isName(int number ){......}
- 格式(多个参数):public static void 方法名(数据类型 变量名1,数据类型 变量名2,......){......}
- 范例(多个参数):public static void getMax(int number1,int number2 ){......}
注意:
- 方法定义时,参数中的数据类型和变量名都不能缺少,缺少任何一个程序将报错
- 方法定义时,多个参数之间使用逗号(,)分隔
带参数方法调用
- 格式:方法名(参数);
- 格式(单个参数):方法名(变量名/常量值);
- 范例(单个参数):isName(5 );
- 格式(多个参数):方法名(变量名1/常量值1,变量名2/常量值2);
- 范例(多个参数):getMax(5,6);
注意:
- 方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
形参和实参
①形参:方法定义中的参数(局部变量)
等同于变量定义的格式。
例如:int number
②实参:方法调用中的参数,等同于使用变量或常量。
例如:10 number
带返回值方法定义
* 格式:
public static 数据类型 方法名(参数){
return 数据;
}
* 范例1:
public static boolean isEvenNumber(int number){
return true;
}
* 范例2:
public static int getMax(int a,int b){
return 100;
}
注意:
方法定义时return 后面的返回值与方法定义上的数据类型要匹配,否则程序将报错。
带返回值方法调用
1.方法名(参数);
isName(5);
2.<返回值类型> <变量名> = <方法名>(<参数列表>);
boolean flag=isEvenNumber(5);
-<返回值类型>:如果方法有返回值,则指定返回值的数据类型;如果方法不返回任何值,则使用关键字 void。
-<变量名>:用于保存方法的返回值的变量。
-<方法名>:要调用的方法名称。
-<参数列表>:传递给方法的输入参数。
注意:
方法的返回值通常会使用变量接收,否则该返回值将无意义。
方法的注意事项
-
方法不能嵌套定义
-
void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
方法重载
方法重载指同一个类中定义的多个方法之间的关系
- 多个方法在同一个类中
- 多个方法具有相同的方法名
- 多个方法的参数数量不相同 (例如,一个方法接受两个参数,另一个方法接受三个参数。)
- 多个方法的参数类型不同(例如,一个方法接受int类型的参数,另一个方法接受String类型的参数。)
- 多个方法的参数顺序不同( 例如,一个方法接受int类型和String类型的参数,另一个方法接受String类型和int类型的参数。)
- 返回类型:方法重载不能仅通过返回类型的不同来进行区分。
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public String add(String a, String b) {
return a + b;
}
public static void main(String[] args) {
Calculator calculator = new Calculator();
int sum1 = calculator.add(3, 4);
System.out.println("Sum 1: " + sum1);
double sum2 = calculator.add(2.5, 3.7);
System.out.println("Sum 2: " + sum2);
String sum3 = calculator.add("Hello", "World");
System.out.println("Sum 3: " + sum3);
}
}
在上述示例中,我们定义了一个名为Calculator的类,包含了三个重载的add方法。通过调用不同的add方法,我们可以执行不同类型的相加操作。
需要注意的是,当调用重载方法时,编译器会根据方法调用时传入的参数类型和数量,确定调用具体的重载方法。如果找不到匹配的重载方法,编译器将发出错误提示。
方法参数传递
对基本数据类型的参数,形式参数的改变,不影响实际参数的值
对于引用类型的参数,形式参数的改变,影响实际参数的值