JavaSEDay05 总结笔记
01-办法介绍
- 介绍 : 办法 | 函数 (method) 一段具备独立性能的代码块, 不调用就不执行.
益处 :
进步代码的可浏览性
- 能够将挤在一起的臃肿代码, 依照性能进行分类管理
进步代码的复用性
- 本来须要反复编写的代码, 当初抽取到办法中, 只须要写一次, 对办法进行屡次调用即可.
- 问题 : 办法是否能够进步程序的执行效率 ?
- 答复 : 不能够 !
02-办法的定义和调用格局
- 办法通用定义格局 :
public static 返回值类型 办法名 (参数列表) { 办法体; return 后果数据;}public static : 目前临时记住, 修饰符返回值类型 : 跟办法返回的后果数据无关.办法名 : 见名知意, 小驼峰命名法参数列表 : 办法运行之前所须要的资料办法体 : 办法中真正执行的逻辑代码return : 1. 完结办法 2. 将后果返回给调用者.
- 办法通用设计思路图
- 定义方法的设计思路
1. 参数 问题: 本人这办法中, 要应用的数据, 是否有灵活性的要求? 需要: 设计一个办法, 打印10次HelloWorld --> 不要 需要: 设计一个办法, 打印n次HelloWorld --> 要参数 需要: 设计一个办法, 求三个小数的最大值 --> 要参数 问题: 要参数的话, 要几个? 要什么类型的? 需要: 设计一个办法, 求三个小数的最大值 数量: 3个 类型: double 代码: double a, double b, double c 需要: 设计一个办法, 从数组中找出最小值 数量: 1个 类型: 数组 代码: int[] arr2. 返回值 步骤1: 先写代码逻辑 步骤2: 察看, 本人这个办法有没有后果产生 没有后果: void public static void print(){ for(int i = 1; i <= 10; i++){ System.out.println("HelloWorld"); } } 有后果: 通过return语句返回, 并批改返回值类型 public static int getMax(int a, int b){ int c = a > b ? a : b; return c; }
- 办法的调用
1. 带返回值的调用 1). 独自调用(不举荐) getMax(10,20); 2). 赋值调用(举荐, 灵便) int max = getMax(10,20); System.out.println(max); if(max % 2 == 0){ ... } for(int i = 1; i <= max; i++){ ... } 3). 输入调用(偶然用) System.out.println(getMax(10,20)); 2. 不带返回值的 1) 只能独自调用 print();
03-办法的常见问题
1. 办法不调用就不执行2. 办法与办法之间是平级关系, 不容许嵌套定义3. 办法的编写程序, 和执行程序无关4. 如果一个办法的返回值类型为void, 示意此办法没有返回值, 能够省略return语句不写 如果非要写的话, 只能写成 return; 5. return语句上面, 不容许写代码, 因为执行不到, 属于有效代码.6. 如果一个办法有具体的返回值(不是void), 肯定要通过return语句带回后果数据, 无论什么状况下 public static int getMax(int a, int b){ if(a > b){ return a; }else if(b > a){ return b; } // 编译谬误: 以后的两个return都被条件所管制, 编译期就认为, 两个条件要都是false, 此办法就没有返回值 } public static int getMax(int a, int b){ if(a > b){ return a; }else if(b > a){ return b; }else{ return a; } }
04-办法重载 Overload
- 介绍 : 办法与办法之间的一种关系
- 指标1 : 可能独立辨认出办法与办法之间是否是正确重载
在同一个类中, 办法名雷同, 参数不同, 与返回值无关 参数不同: 1. 个数不同 2. 类型不同 3. 程序不同
- 指标2 : 可能了解办法重载带来的益处
不须要记忆过多繁琐的办法名字了 假如没有办法重载: printInt(10); printDouble(12.3); printString("abc"); ... 有办法重载 : println(10); println(12.3); println("abc"); println('a'); println(false); 会依据理论参数的类型, 本人去匹配办法.
05-办法练习
示例代码:
public class MethodTest7 { public static void main(String[] args) { int[] arr1 = {11, 22, 33}; int[] maxAndMin = getMaxAndMin(arr1); System.out.println(maxAndMin[0]); System.out.println(maxAndMin[1]); } /* 需要: 设计一个办法, 用于从数组中找最大值和最小值 留神: return语句, 只能带回一个后果数据. 问题: 如果我手里有多个后果, 如何同时返回呢? 答复: 将多个后果, 存入数组, 并返回数组容器 */ public static int[] getMaxAndMin(int[] arr) { int max = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] > max) { max = arr[i]; } } int min = arr[0]; for (int i = 1; i < arr.length; i++) { if (arr[i] < min) { min = arr[i]; } } int[] maxAndMin = {max, min}; return maxAndMin; }}
06-办法的参数传递
- 办法的参数传递根本数据类型 : 传递的是数据值
- 办法的参数传递援用数据类型 : 传递的是地址值