【Java】方法
在 Java 里,方法(method)是一组执行特定任务的语句集合,是程序中最小的执行单元,能提升代码的复用性与可维护性。下面从方法的定义、调用、参数、返回值、重载等方面进行总结。
一、方法的定义
方法定义包含方法头和方法体两部分,语法格式如下:
修饰符 返回值类型 方法名(参数列表) {
// 方法体
语句;
return 返回值; // 如果返回值类型不是 void
}
- 修饰符:可选,用于定义方法的访问权限、静态性等,像
public
、private
、static
等。 - 返回值类型:表明方法执行后返回结果的类型,若不返回任何值,使用
void
。 - 方法名:是方法的标识符,要遵循 Java 的命名规范。
- 参数列表:是传递给方法的参数,多个参数用逗号分隔。
- 方法体:是实现方法功能的语句块。
无参数方法定义和调用
定义格式:
public static void 方法名 ( ) {
// 方法体;
}
例如:
public static void method ( ) {
// 方法体;
}
调用方法:
method();
完整代码演示:
package com.hongwu.methoddemo;
public class methodemo1 {
public static void main(String[] args) {
playgame();
}
public static void playgame(){
System.out.println("123");
System.out.println("123");
System.out.println("123");
System.out.println("123");
}
}
带参数方法定义和调用
定义格式:
public static void 方法名 (参数1, 参数2, 参数3...) {
方法体;
}
例如:
public static void getsum(int num1,int num2){
int result=num1+num2;
System.out.println(result);
}
放到完整程序里面看一下:
- 实参:是调用方法时实际传递的具体值,在
main
方法中调用getsum
方法时,a
和b
是实参。 - 形参:是方法定义时声明的参数,用于接收实参传递的值,在
getsum
方法定义中,num1
和num2
是形参。
当 getsum
方法被调用时,实参的值会传递给形参,从而在 getsum
方法内部可以使用这些值进行计算。
带返回值方法定义和调用
定义格式:
public static 数据类型 方法名 ( 参数 ) {
return 数据 ;
}
例如:
public class methodtest1 {
public static void main(String[] args) {
getsum(10,20,30);
int sum =getsum(10,20,30);
System.out.println(sum);
System.out.println(getsum(10,20,30));
}
public static int getsum(int num1,int num2,int num3){
int result = num1+num2+num3;
return result;
}
}
调用方式:
//直接调用
getsum(10,20,30);
//赋值调用
int sum =getsum(10,20,30);
System.out.println(sum);
//输出调用
System.out.println(getsum(10,20,30));
注意事项
- 方法不调用就不执行
- 方法与方法之间是平级关系,不能互相嵌套定义
- 方法的编写顺序和执行顺序无关
- 方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体的数据。
- return语句下面,不能编写代码,因为永远执行不到,属于无效的代码
二、方法的重载
方法重载指的是在一个类中可以定义多个同名方法,但这些方法的参数列表不同(参数个数、参数类型或参数顺序不同)。方法重载能让代码更具可读性和灵活性。
例子:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容多种数据类型。
public class methodemo2 {
public static void main(String[] args) {
// compare(10,20);
compare(1.2,3.3);
}
public static void compare(double d1,double d2){
System.out.println(d1==d2);
}
public static void compare(int n1,int n2){
System.out.println(n1==n2);
}
public static void compare(short s1,short s2){
System.out.println(s1==s2);
}
public static void compare(long g1,long g2){
System.out.println(g1==g2);
}
}