01方法的概述

02方法的定义和调用

  1. package com.itheima.method1;
  2. public class Demo1Method {
  3. /*
  4. 方法的定义格式:
  5. public static void 方法名 (){
  6. 方法体
  7. }
  8. 方法的调用格式:
  9. 方法名();
  10. 注意: 方法与方法之间是平级关系, 不能嵌套定义
  11. */
  12. public static void main(String[] args) {
  13. eat();
  14. }
  15. public static void eat (){
  16. study();
  17. System.out.println("吃饭");
  18. }
  19. public static void study(){
  20. System.out.println("学习");
  21. }
  22. }

03方法的调用过程

image.png

04方法练习-奇偶数判断

  1. package com.itheima.method1;
  2. public class Demo2Method {
  3. /*
  4. 需求:设计一个方法method,方法中定义一个变量(数值随意)
  5. 判断这个变量是奇数还是偶数,并在main方法中调用method。
  6. 1. 定义method方法
  7. 2. 方法中定义变量, 使用if语句判断是奇数还是偶数
  8. 3. main方法中调用method
  9. */
  10. public static void main(String[] args) {
  11. // 3. main方法中调用method
  12. method();
  13. }
  14. // 1. 定义method方法
  15. public static void method(){
  16. // 2. 方法中定义变量, 使用if语句判断是奇数还是偶数
  17. int num = 11;
  18. if(num % 2 == 0){
  19. System.out.println("偶数");
  20. }else{
  21. System.out.println("奇数");
  22. }
  23. }
  24. }

05带参方法的定义和调用

  1. package com.itheima.method2;
  2. public class Demo1Method {
  3. /*
  4. 带参数方法的定义格式:
  5. public static void 方法名 ( 参数 ) { … … }
  6. public static void 方法名 ( 数据类型 变量名 ) { … … }
  7. 带参数方法的调用格式:
  8. 方法名 ( 参数 ) ;
  9. 方法名 ( 变量名/常量值 ) ;
  10. tips: 参数可以是一个, 也可以是多个.
  11. 需求: 判断一个数是奇数还是偶数
  12. */
  13. public static void main(String[] args) {
  14. isEvenNumber(10);
  15. }
  16. public static void isEvenNumber(int num){
  17. if(num % 2 == 0){
  18. System.out.println("偶数");
  19. }else{
  20. System.out.println("奇数");
  21. }
  22. }
  23. }

06形参和实参

image.png

07带参方法的练习-打印n-m之间所有的奇数

  1. package com.itheima.method2;
  2. public class Demo2Method {
  3. /*
  4. 需求:设计一个方法(print) 用于打印 n 到 m 之间所有的奇数
  5. 思路:
  6. 1:定义方法,名称为print
  7. 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参
  8. 3:方法中设计for循环,循环从n开始,到m结束
  9. 4:循环中加入if判断,是奇数,则打印
  10. 5:main方法中调用print方法,传入两个实际参数
  11. */
  12. public static void main(String[] args) {
  13. // 5:main方法中调用print方法,传入两个实际参数
  14. print(10,20);
  15. }
  16. //1:定义方法,名称为print
  17. // 2:为方法添加两个int类型的形参,准备接受调用者传递过来的实参
  18. public static void print(int n, int m){
  19. System.out.println(n + "到" + m + "之间的奇数为:");
  20. // 3:方法中设计for循环,循环从n开始,到m结束
  21. for(int i = n; i <= m; i++){
  22. // 4:循环中加入if判断,是奇数,则打印
  23. if(i % 2 == 1){
  24. System.out.println(i);
  25. }
  26. }
  27. }
  28. }

08带返回值方法的定义和调用

  1. package com.itheima.method3;
  2. public class Demo1Method {
  3. /*
  4. 带返回值方法的定义格式:
  5. public static 数据类型 方法名 ( 参数 ) {
  6. return 数据 ;
  7. }
  8. 方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错
  9. 带返回值方法的调用格式:
  10. 数据类型 变量名 = 方法名 ( 参数 ) ;
  11. 需求: 定义一个方法, 计算两个整数相加的和
  12. */
  13. public static void main(String[] args) {
  14. int num = add(10,20);
  15. System.out.println(num);
  16. }
  17. public static int add(int a, int b){
  18. int c = a + b;
  19. return c;
  20. }
  21. }

09带返回值方法的练习-求两个数的最大值

  1. package com.itheima.method3;
  2. public class Demo2Method {
  3. /*
  4. 需求:设计一个方法可以获取两个数的较大值,数据来自于参数
  5. 1. 定义一个方法,声明两个形参接收计算的数值,求出结果并返回
  6. 2. 使用 if 语句 得出 a 和 b 之间的最大值,根据情况return具体结果
  7. 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
  8. */
  9. public static void main(String[] args) {
  10. // 3. 在main()方法中调用定义好的方法并使用 【 变量保存 】
  11. System.out.println(getMax(10,20)); // 输出调用
  12. int result = getMax(10,20);
  13. System.out.println(result);
  14. for(int i = 1; i <= result; i++){
  15. System.out.println("HelloWorld");
  16. }
  17. }
  18. // 方法可以获取两个数的较大值
  19. public static int getMax(int a, int b){
  20. if(a > b){
  21. return a;
  22. }else{
  23. return b;
  24. }
  25. }
  26. }

10方法通用格式

image.png

11方法的注意事项

  1. package com.itheima.method4;
  2. public class Demo1Method {
  3. public static void main(String[] args) {
  4. print(10,20);
  5. }
  6. public static void print(int n, int m){
  7. if(m < n){
  8. System.out.println("您传入的数据有误, 请检查");
  9. // return; 可以用于结束方法, 也就是将方法从栈内存中弹出去, 该过程称之为方法的弹栈
  10. return;
  11. // System.out.println(); 无法执行的代码, 无效代码
  12. // 问题: return语句下面, 不是不能写代码吗?
  13. }
  14. System.out.println(n + "到" + m + "之间的奇数为:");
  15. for(int i = n; i <= m; i++){
  16. if(i % 2 == 1){
  17. System.out.println(i);
  18. }
  19. }
  20. }
  21. }

12方法重载

方法名相同,同一位上参数列表不同

13方法重载练习

  1. package com.itheima.overload;
  2. public class Demo1Overload {
  3. /*
  4. 需求:使用方法重载的思想,设计比较两个整数是否相同的方法,兼容全整数类型(byte,short,int,long)
  5. */
  6. public static void main(String[] args) {
  7. short a = 10;
  8. short b = 20;
  9. System.out.println(compare(a,b));
  10. }
  11. public static boolean compare (int a, int b){
  12. return a == b;
  13. }
  14. public static boolean compare (byte a, byte b){
  15. return a == b;
  16. }
  17. public static boolean compare (short a, short b){
  18. return a == b;
  19. }
  20. public static boolean compare (long a, long b){
  21. return a == b;
  22. }
  23. }

14方法参数传递基本数据类型

  1. package com.itheima.param;
  2. public class Test1 {
  3. /*
  4. 方法参数传递为基本数据类型 :
  5. 传入方法中的, 是具体的数值.
  6. */
  7. public static void main(String[] args) {
  8. int number = 100;
  9. System.out.println("调用change方法前:" + number);
  10. change(number);
  11. System.out.println("调用change方法后:" + number);
  12. }
  13. public static void change(int number) {
  14. number = 200;
  15. }
  16. }

15方法参数传递引用数据类型

  1. package com.itheima.param;
  2. public class Test2 {
  3. /*
  4. 方法参数传递为引用数据类型 :
  5. 传入方法中的, 是内存地址.
  6. */
  7. public static void main(String[] args) {
  8. int[] arr = {10, 20, 30};
  9. System.out.println("调用change方法前:" + arr[1]);
  10. change(arr);
  11. System.out.println("调用change方法后:" + arr[1]);
  12. }
  13. public static void change(int[] arr) {
  14. arr[1] = 200;
  15. }
  16. }

16数组遍历

  1. package com.itheima.test;
  2. public class Test1 {
  3. /*
  4. 需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的。例如:[11, 22, 33, 44, 55]
  5. 思路:
  6. 1.定义一个数组,用静态初始化完成数组元素初始化
  7. 2.定义一个方法,对数组进行遍历
  8. 3.遍历打印的时候,数据不换行
  9. 4.调用遍历方法
  10. */
  11. public static void main(String[] args) {
  12. // 1.定义一个数组,用静态初始化完成数组元素初始化
  13. int[] arr = {11, 22, 33, 44, 55};
  14. // 4.调用遍历方法
  15. printArray(arr);
  16. System.out.println("另外一段代码逻辑 ");
  17. }
  18. /*
  19. 2.定义一个方法,对数组进行遍历
  20. 1, 参数 int[] arr
  21. 2, 返回值类型 void
  22. */
  23. public static void printArray(int[] arr){
  24. System.out.print("[");
  25. for (int i = 0; i < arr.length; i++) {
  26. if(i == arr.length -1){
  27. // 如果满足条件, 说明是最后一个元素, 最后一个元素, 特殊处理
  28. System.out.println(arr[i] + "]");
  29. }else{
  30. // 3.遍历打印的时候,数据不换行
  31. System.out.print(arr[i] + ", ");
  32. }
  33. }
  34. }
  35. }

17获取数组最大值

  1. package com.itheima.test;
  2. public class Test2 {
  3. /*
  4. 需求:设计一个方法用于获取数组中元素的最大值
  5. 思路:
  6. 1.定义一个数组,用静态初始化完成数组元素初始化
  7. 2.定义一个方法,用来获取数组中的最大值
  8. 3.调用获取最大值方法,用变量接收返回结果
  9. 4.把结果输出在控制台
  10. */
  11. public static void main(String[] args) {
  12. // 1.定义一个数组,用静态初始化完成数组元素初始化
  13. int[] arr = {11, 55, 22, 44, 33};
  14. // 3.调用获取最大值方法,用变量接收返回结果
  15. int max = getMax(arr);
  16. // 4.把结果输出在控制台
  17. System.out.println(max);
  18. }
  19. /*
  20. 2.定义一个方法,用来获取数组中的最大值
  21. 1, 参数 int[] arr
  22. 2, 返回值类型 int
  23. */
  24. public static int getMax(int[] arr){
  25. int max = arr[0];
  26. for (int i = 1; i < arr.length; i++) {
  27. if(max < arr[i]){
  28. max = arr[i];
  29. }
  30. }
  31. return max;
  32. }
  33. }

18方法同时获取数组最大值和最小值

  1. package com.itheima.test;
  2. public class Test3 {
  3. /*
  4. 需求:设计一个方法,该方法能够同时获取数组的最大值,和最小值
  5. 注意: return语句, 只能带回一个结果.
  6. */
  7. public static void main(String[] args) {
  8. int[] arr = {11,55,33,22,44};
  9. int[] maxAndMin = getMaxAndMin(arr);
  10. System.out.println(maxAndMin[0]);
  11. System.out.println(maxAndMin[1]);
  12. }
  13. public static int[] getMaxAndMin(int[] arr){
  14. int max = arr[0];
  15. for (int i = 1; i < arr.length; i++) {
  16. if(max < arr[i]){
  17. max = arr[i];
  18. }
  19. }
  20. int min = arr[0];
  21. for (int i = 1; i < arr.length; i++) {
  22. if(min > arr[i]){
  23. min = arr[i];
  24. }
  25. }
  26. int[] maxAndMin = {min, max};
  27. return maxAndMin;
  28. }
  29. }