day06 总结笔记
01-方法介绍
- 介绍 : 方法 | 函数 (method) 一段具有独立功能的代码块, 不调用就不执行
- 好处 :
- 提高了代码的可阅读性
- 体现 : 将原本挤在一起的臃肿代码, 按照功能进行分类管理
- 提高了代码的复用性
- 问题 : 方法的出现是否可以提高程序的执行效率 ?
02-方法的通用定义格式
public static 返回值类型 方法名 (参数列表) {
方法体;
return 结果数据;
}
public static : (修饰符)目前来说, 暂时记忆
返回值类型 : 跟return返回的结果有关
方法名 : 见名知意, 小驼峰命名法
参数列表 : 方法运行之前, 需要的材料
方法体 : 方法中真正执行的逻辑代码
return :
1. 用于结束方法
2. 用于将结果返还给调用者.
1. 参数
思考: 自己这个方法, 内部使用的数据, 是否有灵活性的要求?
有 : 声明参数
没有 : 不需要声明参数
需求1: 设计一个方法, 能够打印10次HelloWorld ---> 不需要参数
需求2: 设计一个方法, 能够从3个整数中求出最大值 ---> 要参数
需求3: 设计一个方法, 能够对整数数组求和 ---> 要参数
----------------------------------------------------
思考: 要参数的话, 要几个? 要什么类型的 ?
需求1: 设计一个方法, 能够从3个整数中求出最大值
数量: 3个
类型: int类型
int a, int b, int c
需求2: 设计一个方法, 能够对整数数组求和
数量: 1个
类型: 数组类型
int[] arr
2. 返回值
先正常编写方法逻辑
观察: 自己这个方法是否有结果产生
有 : 通过return语句返回, 并将void修改为对应的数据类型
没有 : 返回值类型写void (标识此方法没有结果返回)
03-方法的调用
public static int getMax(int a, int b){
int max = a > b ? a : b;
return max;
}
1. 单独调用(不推荐)
getMax(10,20);
不报错, 但是对于方法返回的结果, 并没有接收, 数据就丢失了
2. 赋值调用 (推荐)
拿到了真实的数据, 数据在手, 干什么都行
int result = getMax(10,20);
System.out.println(result);
if(result % 2 == 0){
}
for(int i = 1; i <= result; i++){
}
3. 输出调用(偶尔)
用户以后肯定看不到控制台
偶尔: 写好了一个方法, 测试这个方法的正确性
System.out.println(getMax(10,20));
public static void print(){
System.out.println("HelloWorld");
}
只能单独调用
print();
04-方法的常见问题
1. 方法不调用就不执行
2. 方法与方法之间是平级关系, 不允许嵌套定义
3. 方法的编写顺序和执行顺序无关, 要想梳理执行顺序, 就看调用顺序
4. 方法的返回值类型如果是void, 表示此方法没有返回值, 可以省略return语句不写
如果非要写的话, 只能写成return;
5. return语句下面不能写代码, 因为执行不到, 属于无效代码
6. 如果一个方法有具体的返回值类型, 一定要通过return语句带回结果, 无论什么情况下
05-方法重载 (Overload)
- 介绍 : 方法与方法之间的一种关系
- 目标1 : 能够独立识别出方法与方法之间是否是正确的重载
在同一个类中, 方法名相同, 参数不同, 与返回值无关
参数不同: 1. 个数不同 2. 类型不同 3. 顺序不同
- 不需要记忆过多繁琐的方法名字了
- 假设没有方法重载
printInt(10);
printDouble(12.3);
printString("abc");
- 有方法重载 :
println(10);
println(12.3);
println("abc");
06-方法练习
package com.itheima.test;
public class MethodTest4 {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44, 55};
printArray(arr);
}
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i] + "]");
} else {
System.out.print(arr[i] + ", ");
}
}
}
}
package com.itheima.test;
public class MethodTest5 {
public static void main(String[] args) {
int[] arr = {11, 22, 33, 44, 55};
int max = getMax(arr);
System.out.println("最大值为:" + max);
int min = getMin(arr);
System.out.println("最小值为:" + min);
}
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;
}
}