方法概述
方法:是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
注意:
方法必须先创建才可以使用,该过程称为方法定义。
方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用。
方法的定义和调用
定义
方法定义:
格式:public static void 方法名() {
//方法体
}
范例:public static void isEvenNumber() {
//方法体
}
调用
格式:方法名();
范例:isEvenNumber();
注意:
方法必须先定义后调用,否则程序将报错
定义完方法需要在main方法里进行调用
代码演示
public class MethodDemo {
public static void main(String[] args) {
//调用方法
isEvenNumber();
}
//需求:定义一个方法。在方法中定义一个变量,判断该数据是否是偶数
public static void isEvenNumber() {
//定义变量
int number = 10;
//判断该数据是否是偶数
if(number%2 == 0) {
System.out.println(true);
}else {
System.out.println(false);
}
}
}
带参数方法的定义和调用
定义
格式:public static void 方法名(参数){… …}
格式(单个参数):public static void 方法名(数据类型 变量名){… …}
范例(单个参数):public static void isEvenNumber(int number) {… …}
格式(多个参数):public static void 方法名(数据类型 变量名1,数据类型 变量名2){… …}
范例(多个参数):public static void getMax(int number1,int number2) {… …}
注意:
1.方法定义时,参数中的数据类型与变量名都不能缺少,缺少任意一个程序将报错
2.方法定义时,多个参数之间使用逗号(,)分隔
调用
格式:方法名(参数);
格式(单个参数):方法名(变量名/常量值);
范例(单个参数):isEvenNumber(5);
格式(多个参数):方法名(变量名1/常量值1,变量名2/常量值2);
范例(多个参数):getMax(5,6);
注意:
方法调用时,参数的数量与类型必须与方法定义中的设置相匹配,否则程序将报错
代码演示
public class MethodDemo {
public static void main(String[] args) {
//常量值的调用
isEvenNumber(10);
//变量的调用
int number = 10;
isEvenNumber(number);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数
public static void isEvenNumber(int number) {
if(number%2 == 0) {
System.out.println(true);
} else {
System.out.println(false);
}
}
}
形参和实参
形参:方法定义中的个参数
等同于变量定义格式,例如: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:方法名(参数);
范例:isEvenNumber(5);
格式2:数据类型 变量名 = 方法名(参数);
范例:boolean flag = isEvenNumber(5);
注意:
方法的返回值通常会使用变量接收,否则该返回值将无意义
代码演示
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;
}
}
}
方法的注意事项
1.方法不能嵌套定义(方法是平级关系,不可以嵌套)
2.void表示无返回值,可以省略return,也可以单独的书写return,后面不加数据
定义方法时,要做到两个明确
明确返回值类型:
主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;如果有,写对应的数据类型
明确参数:
主要是明确参数的类型和数量
调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接收调用
方法重载
概述
方法重载指同一个类中定义的多个方法之间的关系,满足下列条件的多个方法相互构成重载
1.多个方法在同一个类中
2.多个方法具有相同的方法名
3.多个方法的参数不相同,类型不同或者数量不同
特点
1.重载进对应方法的定义,与方法的调用无关,调用方式参照标准格式
2.重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,换句话说不能通过返回值来判定两个方法是否相互构成重载
代码演示
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;
}
}