方法
一.方法概述
- 定义:方法就是可以完成某个特定功能的代码块
- 作用:提高代码的复用性
二.方法的格式及调用
无参数无返回值的定义及调用
格式:public static void 方法名(){
方法体;
}
调用:方法名();
有参数无返回值的定义及调用
格式:public static void 方法名(参数){
方法体;
}
调用:方法名(参数);
带返回值的定义及调用
格式:public static 返回值数据类型 方法名(参数){
方法体;
}
直接调用:方法名(参数);
赋值调用:数据类型 变量名 = 方法名(参数);
输出调用;System.out.println(方法名(参数));
三.形参和实参
形参:全称形式参数,是指方法定义中的参数
实参:全称实际参数,调用方法传递的参数
四.方法的重载
- 定义:在同一个类中,出现了方法名相同,参数列表不相同的方法
- 简单记:同一个类中,方法名相同,参数不同的方法且与返回值无关;其中参数不同指的是个数不同,类型不同,顺序不同
五.案例
-
在方法中判断一个数据是奇偶数
public class case01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入一个数据"); int number = scanner.nextInt(); panduan(number); } public static void panduan(int number) { if (number % 2 == 0) { System.out.println("这个数是偶数"); } else { System.out.println("这个数是奇数"); } } }
-
在方法中打印n-m之间的奇数
public class case02 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输出第一个整数"); int n = scanner.nextInt(); System.out.println("请输出第二个整数"); int m = scanner.nextInt(); print(n, m); } public static void print(int n, int m) { System.out.println("n-m之间的奇数分别为:"); for (int i = n; i <= m; i++) { if (i % 2 != 0) { System.out.print(i + " "); } } } }
-
在方法中接收两个数据求出两个整数的最大值并返回
public class case03 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个整数"); int a = scanner.nextInt(); System.out.println("请输入第二个整数"); int b = scanner.nextInt(); System.out.println("这两个整数的最大值为:" + getMax(a, b)); } public static int getMax(int a, int b) { int max=a>b?a:b; return max; } }
-
接收两个数据求和并返回
public class case04 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入第一个数据"); int a = scanner.nextInt(); System.out.println("请输入第二个数据"); int b = scanner.nextInt(); System.out.println("这两个数据的和为" + getSum(a, b)); } public static int getSum(int a,int b){ int sum =0; sum =a+b; return sum; } }
-
比较两个数据是否相等
public class MethodDemo7 { public static void main(String[] args) { System.out.println(compare(10, 20)); System.out.println("============"); System.out.println(compare(10L, 20L)); System.out.println("============"); System.out.println(compare((byte)10, (byte)20)); System.out.println("============"); System.out.println(compare((short)10, (short)20)); } public static boolean compare(byte b1, byte b2) { System.out.println("byte"); return b1 == b2; } public static boolean compare(short b1, short b2) { System.out.println("short"); return b1 == b2; } public static boolean compare(int b1, int b2) { System.out.println("int"); return b1 == b2; } public static boolean compare(long b1, long b2) { System.out.println("long"); return b1 == b2; } }
-
在方法中求数组的最值
public class Test3 { public static void main(String[] args) { int[] arr = {33,22,11,55,44}; System.out.println(getMaxOrMin(arr, true)); System.out.println(getMaxOrMin(arr, false)); } /* 方法的功能 : 接收一个数组 , 返回此数组中最值 两个明确 返回值类型 : int 参数列表 : int[] arr , boolean flag */ public static int getMaxOrMin(int[] arr , boolean flag){ int max = arr[0]; int min = arr[0]; // 遍历数组 for (int i = 0; i < arr.length; i++) { if(arr[i] > max){ max = arr[i]; } if(arr[i] < min){ min = arr[i]; } } // if(flag == true){ if(flag){ return max; }else{ return min; } } }