一、方法定义的技巧说明
修饰符 返回值类型 方法名( 形参列表 ) {
方法体代码( 需要执行的功能代码 )
return 返回值;
}
- 修饰符: public static——>暂时固定
- 方法名称:自己取名字,有意义,英文小写,驼峰模式。 (有意义的名字即可)
- 方法体代码:完成自己需要写的功能代码即可。 (具体需求具体实现)
- 真正需要关注的就两点:
1. 分析方法是否需要申明返回值类型;
2. 分析方法是否需要接收参数。
二、方法案例:求和
- 需求: 定义一个方法,方法中计算出 1到n 的和并返回
- 分析:
- 根据格式编写方法 ——> 因为 n 不固定,所以方法 需要声明形参接收;要返回结果,需要申明返回值类型
- 方法内部 ——> 使用for循环计算出 1到n 的和并返回
- 实现:
- 定义一个有参数、有返回值的方法,取名为sum,设置形参1为number,类型为int
- 在方法内,使用for循环计算出 1—n 的和
(2-1) 先在循环外定义个求和变量,初始值为0,用于存放求和结果
(2-2) 使用for循环,将1到n 之间的所有数字遍历一遍,取出求和
(2-3) 在循环内,编写求和语句,使每一次遍历到的数字加起来 - for循环结束后,将求和结果返回给sum方法
- 在main——>主方法内,调用求和方法,并传入参数10,相当于要求计算:1—10之间的数字和,定义变量接收方法的调用
- 输出1—10的和到控制台
- 在main——>主方法内,调用求和方法,并传入参数100,相当于要求计算:1-100之间的数字和,定义变量接收方法的调用
- 输出1-100的和到控制台
package com.app.test;
/**
目标:通过案例:求和,更深入的理解和掌握方法的使用
- 需求:定义一个方法,方法中计算出 1到n 的和并返回
- 分析:
1.根据格式编写方法 ——> 因为 n 不固定,所以方法 需要声明形参接收;要返回结果,需要申明返回值类型
2.方法内部 ——> 使用for循环计算出 1到n 的和并返回
*/
public class MethodTest1 {
// 1. 定义一个有参数、有返回值的方法,取名为sum,设置形参1为number,类型为int
public static int sum(int number) {
// (2-1) 先在循环外定义个求和变量,初始值为0,用于存放求和结果
int sum = 0;
// 2. 在方法内,使用for循环计算出 1—n 的和
// (2-2) 使用for循环,将1到n 之间的所有数字遍历一遍,取出求和
for (int i = 1; i <= number; i++) {
// (2-3) 在循环内,编写求和语句,使每一次遍历到的数字加起来
sum += i;
}
// 3. for循环结束后,将求和结果返回给sum方法
return sum;
}
// main——主方法
public static void main(String[] args) {
// 4. 在main——>主方法内,调用求和方法,并传入参数10,相当于要求:1—10之间的和,定义变量接收方法的调用
int rs = sum(10);
// 5. 输出1—10的和到控制台
System.out.println("1——10的和为: " + rs);
// 6. 在main——>主方法内,调用求和方法,并传入参数100,相当于要求计算:1-100之间的数字和,定义变量接收方法的调用
int rs2 = sum(100);
// 7. 输出1-100的和到控制台
System.out.println("1——100的和为: " + rs2);
}
}
输出结果:
1——10的和为: 55
1——100的和为: 5050
- 好处: 写好求和方法后,封装起来了,当你想求 1—n(任意正整数) 之间的和的时候,只需要在主方法里调用求和方法,传入一个任意数,就可以求出 1—n 的和了。
学习小建议:
- 大家写完代码,运行完后,可以使用debug工具运行一遍,自己慢慢往下走代码,了解一下执行流程,这样子会学得更好一些。
求和案例的小结
1、定义方法重点关注的是哪两点?
- 方法是否需要申明返回值类型
- 方法是否需要定义形参列表
2、如何使用方法完成 1—n(任意正数) 的求和?
// 写个求和方法,然后调用
public static int sum(int n) {
int sum = 0;
for(int i = 1; i <= n; i++) {
sum += i;
}
return sum;
}
public static void main(String[] args) {
System.out.println("1-100的和是: " + sum(100));
System.out.println("1-10的和是: " + sum(10));
}
三、方法案例:判断奇偶数
- 需求: 拿一个整数,通过调用方法,判断该数是奇数还是偶数
- 分析:
- 根据格式编写方法 ——> 因为要判断一个整数,所以需要定义一个有参数、无返回值的方法
- 方法内部 ——> 使用if,通过使用求余数的方法来判断:如果这个整数 模2余0,则提示:该数 + “是偶数”;否则提示:该数 + “是奇数”
- 实现:
- 定义一个判断奇偶数的方法:返回值类型为void,形参1为number——用于接收传入的整数
- 在方法内,使用if判断:
(2-1) 如果这个整数 除2余0,则提示:该数 + “是偶数”;
(2-2) 否则提示:该数 + “是奇数” - 在main——主方法内:
(3-1) 创建键盘录入Scanner对象,用于录入一个整数
(3-2) 调用键盘录入功能,录入一个整数,并用变量接收
(3-3) 调用判断奇偶数的方法,将录入的整数 传入 方法中
package com.app.test;
import java.util.Scanner;
/**
需求:拿一个整数,通过调用方法,判断该数是奇数还是偶数
分析:
1.根据格式编写方法 ——> 因为要判断一个整数,所以需要定义一个有参数、无返回值的方法
2.方法内部 ——> 使用if,通过使用求余数的方法来判断:如果这个整数 模2余0,则提示:该数 + "是偶数";否则提示:该数 + "是奇数"
*/
public class MethodTest2 {
// 1. 定义一个判断奇偶数的方法:返回值类型为void,形参1为number——用于接收传入的整数
public static void judgingParity(int number) {
// 2. 在方法内,使用if判断:
if (number % 2 == 0) {
// (2-1) 如果这个整数 除2余0,则提示:该数 + "是偶数";
System.out.println(number + "是偶数");
}else {
// (2-2) 否则提示:该数 + "是奇数"
System.out.println(number + "是奇数");
}
}
public static void main(String[] args) {
// 3. 在main——主方法内:
// (3-1) 创建键盘录入Scanner对象,用于录入一个整数
Scanner sc = new Scanner(System.in);
// (3-2) 调用键盘录入功能,录入一个整数,并用变量接收
System.out.println("请你输入一个整数: ");
int number = sc.nextInt();
// (3-3) 调用判断奇偶数的方法,将录入的整数 传入 方法中
judgingParity(number);
}
}
输出结果:
测试1:
-----------------
请你输入一个整数:
101
101是奇数
测试2:
-----------------
请你输入一个整数:
2
2是偶数
- 注意点: 当你的方法的返回值类型为void的时候,调用方法时,既不能用变量接收,也不能输出,只能直接调用,有参数就传入,无参数就不需要传入。否则会报错!!
四、方法案例:数组求最值
- 需求: 通过调用方法,选出以下颜值中的最高颜值
- 分析:
- 根据格式编写方法 ——> 由于颜值属于同一批类型的数据,所以要传入一个数组,因此需要定义一个有参数、有返回值的方法
- 在方法内部 ——> 选出最高颜值
- 实现:
- 定义选美的方法:返回值类型为int,取名为max,形参1为数组类型的maxValue
- 在方法内:
(2-1) 定义一个最大值变量max,用于存放最高颜值,初始值为众多颜值中的一个颜值,建议使用首个颜值
(2-2) 使用for循环,遍历一遍所有颜值:
(2-2-1) 在循环内,使用if判断:
如果遍历的颜值 高于 首个颜值的话,则最高颜值替换为遍历的颜值;
否则,遍历的颜值 低于 首个颜值,直接淘汰,不进入if判断,有请下一个遍历的颜值进行比较,直到选出最高颜值。 - 循环结束后(选拔结束),将最高颜值返回(公布一下最高颜值)
- 在main——主方法内:
(4-1) 静态初始化一个整数类型的数组,用于存放众多颜值
(4-2) 调用选美方法,将颜值数组 传入 方法,并输出——>也可以先用变量接收,再输出
package com.app.test;
/**
- 需求:通过调用方法,选出以下颜值中的最高颜值
颜值:15、9000、10000、20000、9500、-5
- 分析:
- 根据格式编写方法 ——> 由于颜值属于同一批类型的数据,所以要传入一个数组,
因此需要定义一个有参数、有返回值的方法。
- 在方法内部 ——> 选出最高颜值
*/
public class MethodTest3 {
// 1. 定义选美的方法:返回值类型为int,取名为getArrayMax,形参1为数组类型的maxValue
public static int getArrayMax(int[] maxValue) {
// 2. 在方法内:
// (2-1) 定义一个最大值变量max,用于存放最高颜值,初始值为众多颜值中的一个颜值,建议使用首个颜值
int max = maxValue[0];
// (2-2) 使用for循环,遍历一遍所有颜值:
for (int i = 1; i < maxValue.length; i++) {
// (2-2-1) 在循环内,使用if判断:
if (maxValue[i] > max) {
// 如果遍历的颜值 高于 首个颜值的话,则最高颜值替换为遍历的颜值;
// 否则,遍历的颜值 低于 首个颜值,直接淘汰,不进入if判断,有请下一个遍历的颜值进行比较,直到选出最高颜值。
max = maxValue[i];
}
}
// 3. 循环结束后(选拔结束),将最高颜值返回(公布一下最高颜值)
return max;
}
public static void main(String[] args) {
// 4. 在main——主方法内:
// (4-1) 静态初始化一个整数类型的数组,用于存放众多颜值
// 颜值:15、9000、10000、20000、9500、-5
int[] faceValue = {15, 9000, 10000, 20000, 9500, -5};
// (4-2) 调用选美方法,将颜值数组 传入 方法,并输出——>也可以先用变量接收,再输出
// System.out.println("最高颜值是: " + getArrayMax(faceValue));
int max = getArrayMax(faceValue);
System.out.println("最高颜值是: " + max);
}
}
输出结果:
最高颜值是: 20000
数组求最值的小结
1、如何使用方法返回一个整型数组的最大值?
- 方法需要申明返回值类型:int
- 方法需要定义形参列表:(int[] maxValue)