方法
方法概述
就是一段具有独立功能的代码块,不调用就不执行
提高代码复用性
前提
- 方法必须先创建才可以使用,该过程成为方法的定义
- 方法创建后并不是直接运行的,需要手动调用才执行,该过程称为方法的调用
方法的定义和调用
定义
- 格式
public static void 方法名() {
方法体
}
- 调用格式
方法名()
方法必须先定义后调用
- 例子
public static void main (String[] args){
eat();
}
public static void eat(){
System.out,println("吃饭");
}
案例1
奇偶数判断
package Day5L;
import java.util.Scanner;
public class JiO {
public static void main(String[] args) {
jo();
}
public static void jo() {
Scanner sc = new Scanner(System.in);
System.out.println("请用户输入一个整数:");
int num = sc.nextInt();
if (num % 2 == 0) {
System.out.println(num + "为偶数");
} else {
System.out.println(num + "为奇数");
}
}
}
带参数的方法的定义和调用
public static void method(int num)
public static void method(int num,intnum2)
- 方法定义是,参数中的数据类型与变量名缺一不可
- 多个参数用,隔开
调用
方法名(参数)
方法名(参数,参数)
形参和实参
形参
- 形参:形式参数(定义的参数)
- 实参:实际参数(调用给的参数)
案例
打印奇数
package Day5L;
import java.util.Scanner;
public class JiShu {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请用户输入第一个数");
int n = sc.nextInt();
System.out.println("请用户输入第二个数");
int m = sc.nextInt();
print(n, m);
}
public static void print(int n, int m) {
if (n <= m) {
for (int i = n; i <= m; i++) {
if (i % 2 != 0) {
System.out.println(i);
}
}
} else {
for (int i = n; i >= m; i--) {
if (i % 2 != 0) {
System.out.println(i);
}
}
}
}
}
带返回值的定义和调用
格式
public static 数据类型 方法名(参数){
return 数据;
}
方法名(参数) //没意义
数据类型 变量名 = 方法名(参数)
return 返回值
- 方法的返回值通常用变量接收,否则没意义.
案例
package Day5L;
import java.util.Scanner;
public class Max {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个数:");
int num2 = sc.nextInt();
if (num1 == num2) {
System.out.println("两数相等,最大值为" + num1);
} else {
int max = max(num1, num2);
System.out.println("最大值为:" + max);
}
}
public static int max(int a, int b) {
int c = a > b ? a : b;
return c;
}
}
通用格式
public static 返回值类型 方法名(参数){
方法体;
ruturn 数据;
}
- public stsatic: 修饰符
- 返回值类型: 返回之后数据类型相同,如果没有返回值,写void 不写return
- 方法名:调用方法的表示
- 参数:方法运行前所需的材料
- 方法体:完成功能的代码块
- return 返回数据
注意事项
- 方法之家不能嵌套定义
- 方法的返回值为void,表示没有返回值,没有返回值的方法可以省略return,如果要写,后面不能跟具体数据
- return语句下面,不能写代码,因为永远执行不到
方法重载
- 方法不可以重复定义,但是可以同名,只有同名同参冲突
- 个数不同
- 类型不同
- 顺序不同
好处
- 不用记忆过多的繁琐的方法名
方法的传递(基本数据类型)
不变
方法的传递(引用数据类型)(数组)
变
案例
数组遍历
package Day5L;
public class ShuZuBianLi {
public static void main(String[] args) {
int[] arr = {11,22,33,44,55};
System.out.print("[");
printArr(arr);
System.out.println("]");
}
public static void printArr(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + ", ");
}
}
}
获取数组中的最大值
package Day5L;
public class ArrMaxAndMin {
public static void main(String[] args) {
int[] arr = {11, 58, 64, 34, 58, 658, 94, 42, 54, 2};
arrMaxAndMin(arr);
}
public static void arrMaxAndMin(int[] arr) {
int max = arr[0];
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
for (int i = 1; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i];
}
}
System.out.println("数组中最大的值为" + max);
System.out.println("数组中最小的值为" + min);
}
}