1-方法介绍
- 介绍 : 方法 | 函数 (method) 一段具有独立功能的代码块, 不调用就不执行
- 方法的出现:
-
可以将挤在一起的臃肿代码
-
按照功能进行分类管理
-
方法的出现,可以提高代码的复用性
-
2-方法的通用定义格式
定义格式:
调用格式:
3-方法的调用
- 带返回值的
/**
* 确定最大值
*
* @param arr
* @return
*/
private static int max(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
max = max > arr[i] ? max : arr[i];
}
return max;
}
1. 单独调用(不推荐)
不报错, 但是对于方法返回的结果, 并没有接收, 数据就丢失了
2. 赋值调用 (推荐)
拿到了真实的数据, 数据在手, 干什么都行
- 不带返回值的
public static void print(){
System.out.println("HelloWorld");
}
单独调用(无意义)
print();
4-方法的常见问题
0.方法不调用就不执行
1.方法与方法之间是平级关系,不能嵌套定义
2.方法的编写顺序和执行顺序无关
3.方法的返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写 如果要编写return,后面不能跟具体的数据。
4.return语句下面,不能编写代码,因为永远执行不到,属于无效的代码
5-方法重载 (Overload)
- 在同一个类中,定义了多个同名的方法,但每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系
- 简单记:同一个类中,方法名相同,参数不同的方法
参数不同:个数不同、类型不同、顺序不同
注意:识别方法之间是否是重载关系,只看方法名和参数,跟返回值无关。
public class Test {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
public static double add(double a, double b, double c) {
return a + b + c;
}
}
6-方法练习
需求:设计一个方法用于获取数组中元素的最大值
package com.wanxi.test;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
/*
需求:设计一个方法用于获取数组中元素的最大值
分析:
编写方法,要求该方法能够接收一个数组
方法中遍历数组并获取最大值
将最大值通过return语句返回
调用该方法
*/
public class Max {
public static void main(String[] args) {
int a = getNumber("请输入数组长度:");
int b=getNumber("随机数1-?的范围:");
int[] arr=aa(a,b);
int Max=max(arr);
System.out.println("最大值为:"+Max);
}
/**
* 获取键盘录入并且返回值
*
* @param Str
* @return
*/
private static int getNumber(String Str) {
Scanner scanner = new Scanner(System.in);
System.out.print(Str);
int num = scanner.nextInt();
return num;
}
/**
* 生成随机数组
*
* @param temp
* @param unm
* @return
*/
private static int[] aa(int temp, int unm) {
Random random = new Random();
int[] arr = new int[temp];
for (int i = 0; i < arr.length; i++) {
int bb = random.nextInt(unm)+1;
arr[i] = bb;
}
System.out.println(Arrays.toString(arr));
return arr;
}
/**
* 确定最大值
*
* @param arr
* @return
*/
private static int max(int[] arr) {
int max = arr[0];
for (int i = 1; i < arr.length; i++) {
max = max > arr[i] ? max : arr[i];
}
return max;
}
}
结果
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的
例如:[11, 22, 33, 44, 55]
package com.wanxi.test;
/*
需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的
[11, 22, 33, 44, 55]
分析:
静态初始化数据,将数据准备好
编写方法,要求该方法能够接收一个数组
遍历数组前,打印 [
遍历数组获取每一个元素,打印数据的时候不换行,并拼接逗号空格
在遍历的过程中判断当前元素是否是最后一个,是的话拼接 ]
调用该方法
*/
import java.util.Random;
import java.util.Scanner;
public class PassAnArray {
public static void main(String[] args) {
int unm = getNumber("请输入数组长度:");
int[] arr = bb(unm);//获取数组输入每个索引值
aa(arr);
}
/**
* 获取键盘录入并且返回值
*
* @param Str
* @return
*/
private static int getNumber(String Str) {
Scanner scanner = new Scanner(System.in);
System.out.print(Str);
int num = scanner.nextInt();
return num;
}
/**
* 得到数组长度后键入值返回数组
*
* @param temp
* @return
*/
private static int[] bb(int temp) {
int[] arr = new int[temp];
Scanner scanner = new Scanner(System.in);
for (int i = 0; i < arr.length; i++) {
System.out.print("第" + (i + 1) + "个索引值:");
int aa = scanner.nextInt();
arr[i] = aa;
}
return arr;
}
/*
*//**
* 取随机值赋值给空数组,且返回数组
*
* @param temp
* @param CD
* @return
*//*
private static int[] cc(int temp, int CD) {
Random random = new Random();
int[] arr = new int[temp];
for (int i = 0; i < arr.length; i++) {
int number = random.nextInt(CD) + 1;
arr[i] = number;
}
return arr;
}
*/
/**
* 给予数组格式
*
* @param arr
*/
private static void aa(int arr[]) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i]);
}
if (i != arr.length - 1) {
System.out.print(arr[i] + ", ");
}
}
System.out.print("]");
}
}
结果