内容摘要:
- 方法概述及使用
- 方法重载及参数传递
- 方法操作数组
1. 方法概述及使用
方法定义格式:
- 方法本质是完成特定功能的代码块;
- 定义格式:
修饰符 返回值类型 方法名(参数类型 参数名1,…) {
方法体;
return 具体的返回值;
}
修饰符:public static
返回值类型:用于限定返回值的数据类型
方法名:方便调用使用的名字
参数类型:限定调用方法时传入的数据类型
参数名:接收调用方法时传入的数据的变量
方法体:用于完成特定功能的代码
返回值:结束方法时返回给调用者的结果.
方法定义的位置:
- 定义在一个类中,在其他的方法外面(方法间是同级关系).
方法编写:
- 返回值类型:明确方法返回数据的数据类型;
- 参数列表:参数的个数及对应的数据类型.
方法的调用:
- 有明确返回值的方法的调用:
单独调用时无意义的
输出调用是可以的,但是不建议,可能还需要使用返回的结果.
赋值调用,将返回值赋值给一个变量,以便使用.- 无明确返回值的方法调用(void),只能单独调用:
单独调用:方法名(参数列表);
输出调用:不能输出调用;
赋值调用:不能赋值调用.
案例:
package com.heima.mothod;
import java.util.Scanner;
public class MethodTest {
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();
int max = getMax(a, b);
System.out.println(max);
// 获取三个整数中的最大值
System.out.println("请依次输入3个整数:");
int thereMax = getThereMax(scanner.nextInt(), scanner.nextInt(), scanner.nextInt());
System.out.println(thereMax);
}
/**
* 返回两个数中的最大值
* @param a
* @param b
* @return
*/
public static int getMax(int a, int b) {
return a > b ? a : b;
}
/**
* 求取三个整数中的最大值
* @param a 第一个整数
* @param b 第二个整数
* @param c 第三个整数
* @return 有返回值
*/
public static int getThereMax(int a,int b,int c) {
if (a > b && a > c) {
return a;
}if (b > a && b > c) {
return b;
}else {
return c;
}
}
}
2. 方法重载及参数传递
2.1 方法重载
方法重载:
- 在同一个类中存在方法名相同的方法.
- 在调用方法时,Java虚拟机会通过方法的参数列表来区分同名的方法.
方法重载特点:
- 方法名相同
参数列表不同
参数的个数不同;
参数对应的数据类型不同;- 方法有多个参数类型时,若类型的顺序不同,也是重载.
- 与方法的返回值无关
2.2 参数传递
形式参数为基本数据类型时:
- 实际参数:实际参与运算的变量;
- 形式参数:用于接收实际参数的变量,方法的声明上
- 基本数据类型作为参数时,形式参数值的改变,不改变实际参数的值.
- 内存中方法区存储的是字节码文件(.class)
引用数据类型作为形式参数传递时:
- 引用数据类型作为形式参数传递时,形式参数的改变会改变实际参数.
总结:
- 不管参数传递的是什么类型数据,传递的都是值,基本数据类型传递的变量的值,引用类型传递的是地址值。
3. 方法操作数组
数组遍历及求和:
求最值:
求取最大值和最小值时,不要取0作为参考,一般取数组的第一个值作为参考,并且循环从索引1开始.
案例:
package com.heima.test;
public class Test5 {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6};
print(arr);
System.out.println(getMax(arr));
}
// 获取数组的最大值
public static int getMax(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
// 获取数组的最小值
public static int getMin(int[] arr) {
int min = arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i] < min) {
min = arr[i];
}
}
return min;
}
// 按指定格式打印数组元素
public static void print(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i] + "]");
}else {
System.out.print(arr[i] + ", ");
}
}
}
}