一、方法的定义
什么是方法?
将具有独立整体的代码块组织成一个整体,使其具有特殊功能的代码集。方法要先进行定义才可以调用。
二、方法定义和调用
1、基础格式
定义格式: public static void 方法名 ( ) { //方法体 } 调用格式: 方法名();//方法要先定义才能调用,否则会报错。
我们看以下案例来进一步看一下方法的调用:
public class MethodDemo {
public static void main(String[] args) {
//主函数调用方法
isEvenNumber();
}
//需求:定义一个方法,在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber() {
//定义变量
int number = 10;
number = 9;
//判断该数据是否是偶数
if(number%2 == 0) {
System.out.println(true);
} else {
System.out.println(false);
}
}
}
2、带参数方法的定义和调用
定义格式: public static void 方法名(参数) { … … }//单个参数 public static void 方法名 ( 数据类型 变量名1 ,数据类型 变量名2 ,…… ) { … … }//多个参数 调用格式: 方法名(参数); 方法名(参数1,参数2) 形参和实参: 形参:方法定义中的参数,等同于变量定义格式,例如:int number 实参:方法调用中的参数,等同于使用变量或常量,例如: 10 , number
public class MethodDemo {
public static void main(String[] args) {
//常量值的调用
isEvenNumber(10);//10为实参
//变量的调用
int number = 10;
isEvenNumber(number);//number为实参
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
public static void isEvenNumber(int number) { //int number为形参
if(number%2 == 0) {
System.out.println(true);
} else {
System.out.println(false);
}
}
}
3、带返回值的方法定义和调用
定义格式:
public static 数据类型 方法名(参数) {
return 数据;
}
调用格式:
1:方法名(参数);
2:数据类型 变量名 = 方法名(参数);
public class MethodDemo {
public static void main(String[] args) {
//1:方法名(参数);
//isEvenNumber(10);
//true;
//2:数据类型 变量名 = 方法名(参数);
boolean flag = isEvenNumber(10);
//boolean flag = true;
System.out.println(flag);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值
public static boolean isEvenNumber(int number) {
if(number%2 == 0) {
return true;
} else {
return false;
}
}
}
*方法不能被循环嵌套
*有void表示无返回值类型,可省略return,不省略时,不能加上返回值类型。
4、方法通用格式
public static 返回值类型 方法名(参数)
{ 方法体;
return 数据 ; }
- 定义方法时,要做到两个明确:
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void; 如果有,写对应的数据类型
明确参数:主要是明确参数的类型和数量
- 调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接收调用
三、方法重载
什么是方法重载?
同一个类中定义方法之间的关系,满足下面多个条件的方法相互构成重载:
- 多个方法在同一个类中;
- 多个方法在具有相同的方法名;
- 多个方法的参数不同,可以是类型、数量不同;
特点:重载仅对应方法的定义,与方法的调用无关,调用方式参照标准格式
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关。
public class MethodDemo {
public static void main(String[] args) {
//调用方法
int result = sum(10,20);
System.out.println(result);
double result2 = sum(10.0,20.0);
System.out.println(result2);
int result3 = sum(10,20,30);
System.out.println(result3);
}
//需求1:求两个int类型数据和的方法
public static int sum(int a, int b) {
return a + b;
}
//需求2:求两个double类型数据和的方法
public static double sum(double a, double b) {
return a + b;
}
//需求3:求三个int类型数据和的方法
public static int sum(int a, int b, int c) {
return a + b + c;
}
}
四、方法的参数传递
(1)对于基本数据类型的参数,形式参数的改变,不影响实际参数的值。
(2)对于引用类型的参数,形式参数的改变,影响实际参数的值