一、方法的概述
方法:是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集。
注意:
- 方法必须先创建才可以使用,该过程称为方法定义
- 方法创建后并不是直接运行的,需要手动使用后才执行,该过程称为方法调用
1、方法定义
格式:
public static void 方法名(){
//方法体
}
例子:
public static void isEvenNumber(){
//方法体
}
2、方法调用
格式:方法名();
例子:isEvenNumber();
注意:方法必须先定义后调用,否则程序将报错
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);
}
}
}
二、带参数方法
1、带参数方法的定义
格式: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){......}
注意:
- 方法定义时,参数中的数据类型和变量名都不能缺少,缺少任意一个程序将报错
- 方法定义时,多个参数之间使用逗号分隔
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);
}
}
}
三、带返回值方法
1、方法定义
格式:public static 数据类型 方法名(参数){
return 数据;
}
范例1:public static boolean isEvenNumber(int number){
return ture;
}
范例2:public static int getMax(int a, int b){
return 100;
}
注意:方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
2、方法调用
格式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);
System.out.println(flag);
}
//需求:定义一个方法,该方法接收一个参数,判断该数据是否是偶数,并返回真假值
public static boolean isEvenNumber(int number){
if(number%2 == 0){
return true;
}else{
return false;
}
}
}
练习
public class MethodTest3 {
public static void main(String[] args) {
//范例1.在main()方法中调用定义好的方法并使用变量保存
int result = getMax(10,20);
System.out.println(result);
//范例2.在main()方法中调用定义好的方法并直接打印结果
System.out.println(getMax(10,20));
}
public static int getMax(int a, int b) {
if(a >b) {
return a;
}else {
return b;
}
}
}
四、方法注意事项
- 方法不能嵌套定义
- void表示无返回值,可以省略return,也可以单独写return,后面不加数据
五、总结
-
定义方法时,要做到两个明确
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,
如果没有,写void;如果有,则写对应的数据类型
明确参数:主要是明确参数的类型和数量 -
调用方法时
void类型的方法,直接调用即可
非void类型的方法,推荐用变量接收调用
六、方法参数传递
1、传递基本类型
2、传递引用类型
七、案例
1、数组遍历
package exercise;
public class MethodTest01 {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44, 55};
printArray(arr);
}
public static void printArray(int[] arr) {
System.out.print("[");
for(int x =0;x < arr.length; x++) {
if(x == arr.length-1) {
System.out.print(arr[x]);
}else {
System.out.print(arr[x]+",");
}
}
System.out.print("]");
}
}
2、数组最大值
package exercise;
public class MethodTest02 {
public static void main(String[] args) {
int[] arr = {12, 45, 98, 73, 60};
System.out.println(getMax(arr));
}
public static int getMax(int[] arr) {
int max = arr[0];
for(int x = 1; x < arr.length; x++) {
if(arr[x] > max) {
max = arr[x];
}
}
return max;
}
}