方法(method)就是一段具有独立功能的代码块,不调用就不执行。
方法的出现,可以提高代码的复用性。
方法使用前提须知:
方法必须先创建才可以使用,该过程称为方法定义。
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
方法定义
格式:public static void 方法名(){
方法体;
}
例:public static void method() {
int num = 10;
if (num % 2 == 0) {
System.out.println("偶数");
} else {
System.out.println("奇数");
}
}
方法调用:
格式:方法名();
注:方法必须先定义后调用,否则程序将会报错。
例:method();
方法的调用过程
方法没有被调用的时候,在方法区中的字节码(.class)中存储
方法被调用的时候,需要进入到栈内存中运行
带参数方法定义
格式:public static void 方法名(参数){……}
单个参数格式:public static void 方法名(数据类型 变量名){……}
例:public static void isEvenNumber(int num) {
if (num % 2 == 0) {
System.out.println("偶数");
} else {
System.out.println("奇数");
}
}
多个参数格式:
public static void 方法名(数据类型 变量名1,数据类型 变量名2,……){……}
注:方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将会报错。
方法定义时,多个参数之间使用逗号(,)分隔。
例:public static void print(int a,int b){
System.out.println(a+"到"+b+"之间的奇数为:");
//用for循环。循环从n开始,到m结束
for (int i=a;i<=b;i++){
//循环中加入if判断,是奇数,则打印
if(i%2==1){
System.out.println(i);
}
}
}
带参方法调用
格式:方法名(参数);
单个:方法名(变量名/常量值);
例:isEvenNumber(6);
多个:方法名(变量1/常量1,变量2/常量2);
例:print(10,20);
注:方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将会出错。
形参和实参
形参:全称形式参数,是指方法定义中的参数。
实参:全称实际参数,方法调用中的参数
带返回值方法的定义和调用
我们经常会根据一个方法产出的结果,来去组织另外一段代码逻辑为了拿到这个方法产生的结果,就需要定义带有方法值的方法。
格式:
public static 数据类型 方法名(参数){ return 数据; }
例:public static int add(int a,int b){
int c=a+b;
return c;
}
注:方法定义时return后面的方法值与方法定义上的数据类型匹配,否则程序将报错。
调用
格式1:方法名(参数);
例:isEvenNumber(6);
格式 2:数据类型 变量名=方法名(参数);
例:public static void main(String[] args) {
int num= add(10,20);
}
注:如果你在调用一个有返回值的方法,一定要拿一个变量去接收,不然该返回值没有任何意义。
带返回值方法的定义好调用
方法的通用格式
格式:public static 返回值类型 方法名(参数){方法体; return数据;}
定义方法时,要做到两个明确
明确参数:主要是明确参数的类型和数量
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型。
调用方法时:
void类型的方法,直接调用即可
非void类型方法,推荐用变量接收调用
方法注意事项
- 方法不能嵌套定义
- 方法的返回类类型为void,表示fail方法没有返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体的数据。
- return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。
return可以用于结束方法,也就是将方法从栈内存中弹出去,该过程称之为方法的弹栈。