在我们的日常生活中,方法可以理解为要做某件事情,

而采取的解决办法。

  如:小明同学在路边准备坐车来学校学习。这就面临

着一件事情(坐车到学校这件事情)需要解决,解决办法

呢?可采用坐公交车或坐出租车的方式来学校,那么,这

种解决某件事情的办法,我们就称为方法。

  在java中,方法就是用来完成解决某件事情或实现某

个功能的办法。

  方法实现的过程中,会包含很多条语句用于完成某些

有意义的功能——通常是处理文本,控制输入或计算数值。

  我们可以通过在程序代码中引用方法名称和所需的参

数,实现在该程序中执行(或称调用)该方法。方法,一

般都有一个返回值,用来作为事情的处理结果。

  1. 1 /*
  2. 2 方法的定义格式
  3. 3 修饰符 返回值类型 方法的名字 (参数列表...){
  4. 4 方法的功能主体
  5. 5 循环,判断,变量,比较,运算
  6. 6 return ;
  7. 7 }
  8. 8
  9. 9 修饰符: 固定写法 public static
  10. 10 返回值类型: 方法在运算后,结果的数据类型
  11. 11 方法名: 自定义名字,满足标识符规范, 方法名字首字母小写,后面每个单词首字母大写
  12. 12 参数列表: 方法的运算过程中,是否有未知的数据, 如果有未知的数据,定义在参数列表上 (定义变量)
  13. 13 return: 方法的返回, 将计算的结果返回. 结束方法
  14. 14 */
  15. 15 public class MethodDemo{
  16. 16
  17. 17 public static void main(String[] args){
  18. 18 //调用方法, 方法执行起来
  19. 19 // 在方法main中,调用方法 getArea
  20. 20
  21. 21 int area = getArea(5,6);
  22. 22 System.out.println("面积是: "+area);
  23. 23
  24. 24 }
  25. 25 /*
  26. 26 要求: 计算一个长方形的面积
  27. 27 定义方法解决这个要求
  28. 28 分析方法定义过程:
  29. 29 1. 明确方法计算后的结果的数据类型 int 定义格式对应的就是返回值类型
  30. 30 2. 方法计算过程中,有没有未知的数据, 宽和长, 未知数据的数据类型 int
  31. 31 未知数的变量,定义在方法的小括号内
  32. 32 */
  33. 33 public static int getArea(int w, int h){
  34. 34 //实现方法的功能主体
  35. 35 //int area = w * h;
  36. 36 return w * h;
  37. 37 }
  38. 38 }
  1. 1 package com.it.demo03_method;
  2. 2
  3. 3 /*
  4. 4 案例: 演示方法的定义格式.
  5. 5
  6. 6 方法简介:
  7. 7 概述:
  8. 8 就是把一些具有独立功能的代码封装起来, 使其成为一个具有特殊功能的代码集, 这个代码集就叫: 方法.
  9. 9 目的:
  10. 10 提高代码的复用性. //我们把重复做事儿抽取成方法, 以后需要用到该逻辑的时候, 不需要重新编写代码了, 直接调用方法即可.
  11. 11 格式:
  12. 12 修饰符 返回值的数据类型 方法名(数据类型 参数名1, 数据类型 参数名2) {
  13. 13 //方法体
  14. 14 return 具体的返回值;
  15. 15 }
  16. 16 格式详解:
  17. 17 修饰符: 目前先理解为就是 public static, 面向对象详解.
  18. 18 返回值的数据类型: 指的是方法调用完毕后, 返回给我们一个什么类型的值.
  19. 19 方法名: 遵循"小驼峰命名法", 而且要符合命名规则和规范, 是帮我们调用指定方法的.
  20. 20 (数据类型 参数名1): 形式参数, 形容调用方法的时候, 需要传入什么类型的值, 注意: 形参没有具体指.
  21. 21 方法体: 具体的逻辑代码.
  22. 22 return 具体的返回值: 方法指定完毕后, 要返回的具体的结果.
  23. 23 注意事项:
  24. 24 1. 方法与方法之间是平级关系, 不能嵌套定义.
  25. 25 2. 方法只有被调用, 才会执行.
  26. 26 3. 定义方法的时候, 参数列表中的参数叫: 形式参数(简称: 形参), 形容调用方法需要传入什么类型的值.
  27. 27 4. 调用方法的时候, 参数列表中传入的具体的值叫: 实际参数(实参), 指的是具体参与操作的数据.
  28. 28 5. 如果方法没有明确的返回值, 则返回值的数据类型必须写成 void
  29. 29 6. 如果方法没有明确的返回值, 则return语句可以省略不写.
  30. 30 7. 方法的功能越单一越好.
  31. 31 学习"方法"这个技术点的小技巧:
  32. 32 定义方法的三个明确:
  33. 33 1. 明确方法名.
  34. 34 2. 明确参数列表.
  35. 35 3. 明确返回值的数据类型.
  36. 36
  37. 37 调用方法时的三个步骤:
  38. 38 1. 写方法名, 调用谁就写谁, 注意大小写, 不要写错了.
  39. 39 2. 传参. 方法要什么类型的数据, 我们就传入什么类型的值.
  40. 40 3. 接收返回值. 方法返回什么类型的数据, 我们就用什么类型的变量来接收.
  41. 41 */
  42. 42 public class Demo01 {
  43. 43 //main方法是程序的主入口, 所有的代码都是从这里开始执行的.
  44. 44 public static void main(String[] args) {
  45. 45 //调用printHello()方法
  46. 46 printHello();
  47. 47 }
  48. 48
  49. 49 //需求: 定义printHello()方法, 用来打印"Hello World!"字符串.
  50. 50 /*
  51. 51 定义方法的三个明确:
  52. 52 1. 明确方法名. printHello()
  53. 53 2. 明确参数列表. 空参
  54. 54 3. 明确返回值的数据类型. 无具体返回值, 即: void类型
  55. 55 */
  56. 56 public static void printHello() {
  57. 57 //方法体
  58. 58 System.out.println("Hello World! 1");
  59. 59 System.out.println("Hello World! 2");
  60. 60 System.out.println("Hello World! 3");
  61. 61 System.out.println("Hello World! 4");
  62. 62 }
  63. 63 }
  1. 1 /*
  2. 2 方法的定义练习
  3. 3 */
  4. 4 import java.util.Scanner;
  5. 5 public class MethodDemo_1{
  6. 6 public static void main(String[] args){
  7. 7 //printRect();
  8. 8 //int number = getNumber();
  9. 9 //System.out.println(getNumber());
  10. 10 //printRect2(3,5);
  11. 11 double avg = getAvg(2,2,3);
  12. 12 System.out.println(avg);
  13. 13 }
  14. 14
  15. 15 /*
  16. 16 定义有返回值有参数方法,如求三个数的平均值
  17. 17 明确方法计算后的数据类型, 返回值类型 double
  18. 18 明确方法未知数, 三个未知的整数
  19. 19 */
  20. 20 public static double getAvg(double a, double b,double c){
  21. 21 return (a+b+c)/3;
  22. 22 }
  23. 23
  24. 24 /*
  25. 25 定义无返回值有参数方法,如打印指定M行,每行N个*号的矩形
  26. 26 明确方法计算后结果,控制台输出图形,没有返回值的
  27. 27 方法中有没有未知数,图形行数,和列数,是未知的, 数据类型整数int
  28. 28 */
  29. 29 public static void printRect2(int m,int n){
  30. 30 for(int i = 0 ; i < m ; i++){
  31. 31 for(int j = 0 ; j < n ; j++){
  32. 32 System.out.print("*");
  33. 33 }
  34. 34 System.out.println();
  35. 35 }
  36. 36 }
  37. 37
  38. 38 /*
  39. 39 定义有返回值无参数方法,如键盘录入得到一个整数
  40. 40 明确方法计算后结果的数据类型 int
  41. 41 明确有没有未知数,没
  42. 42 */
  43. 43 public static int getNumber(){
  44. 44 Scanner sc = new Scanner(System.in);
  45. 45 //int number = sc.nextInt();
  46. 46 return sc.nextInt();
  47. 47 }
  48. 48
  49. 49 /*
  50. 50 定义无返回值无参数方法,如打印3行,每行3个*号的矩形
  51. 51 为什么没有返回值:
  52. 52 打印矩形 ,输出效果,不需要将结果返回
  53. 53 明确未知数: 不需要未知数
  54. 54 */
  55. 55 public static void printRect(){
  56. 56 for(int i = 0 ; i < 3 ; i++){
  57. 57 for(int j = 0 ; j < 3 ;j++){
  58. 58 System.out.print("*");
  59. 59 }
  60. 60 System.out.println();
  61. 61 }
  62. 62 }
  63. 63 }
  1. 1 /*
  2. 2 方法定义和使用的注意事项
  3. 3 1. 方法不能定义在另一个方法的里面
  4. 4 2. 写错方法名字
  5. 5 3. 写错了参数列表
  6. 6 4. 方法返回值是void,方法中可以省略return 不写
  7. 7 return 下面不能有代码
  8. 8 5. 方法返回值类型,和return 后面数据类型必须匹配
  9. 9 6. 方法重复定义问题
  10. 10 7. 调用方法的时候,返回值是void, 不能写在输出语句中
  11. 11 */
  12. 12 public class MethodDemo_2{
  13. 13 public static void main(String[] args){
  14. 14 int i = print();
  15. 15 System.out.println( print() );
  16. 16 }
  17. 17 public static int print(){
  18. 18
  19. 19 return 1;
  20. 20 }
  21. 21
  22. 22 }
  1. 1 /*
  2. 2 方法,调用中的参数传递问题
  3. 3 1. 方法参数是基本数据类型
  4. 4 2. 方法参数是引用类型
  5. 5 传递的是内存地址!!!
  6. 6 */
  7. 7 public class MethodDemo_3{
  8. 8 public static void main(String[] args){
  9. 9 /*int a = 1;
  10. 10 int b = 2;
  11. 11 change(a,b);
  12. 12 System.out.println(a); //1
  13. 13 System.out.println(b); // 2
  14. 14 */
  15. 15 int[] arr = {1,2,3,4};
  16. 16 System.out.println(arr[2]); // 3
  17. 17 change(arr);
  18. 18 System.out.println(arr[2]); // 100
  19. 19 }
  20. 20
  21. 21 public static void change(int[] arr){
  22. 22 arr[2] = 100;
  23. 23 }
  24. 24
  25. 25
  26. 26 public static void change(int a,int b){
  27. 27 a = a+b;
  28. 28 b = b+a;
  29. 29 }
  30. 30 }
  1. 1 /*
  2. 2 方法的重载特性 (overload)
  3. 3 在同一个类中,允许出现同名的方法,只要方法的参数列表不同即可,这样方法就是重载
  4. 4 参数列表不同: 参数的个数,数据类型,顺序
  5. 5 */
  6. 6 public class MethodOverLoadDemo{
  7. 7 public static void main(String[] args){
  8. 8 //对于重载的调用,根据参数传递进行区分
  9. 9 //System.out.println();
  10. 10 double sum = getSum(2.3,3.5);
  11. 11 System.out.println(sum);
  12. 12 }
  13. 13 /*
  14. 14 对参数求和,利用方法的重载特性
  15. 15 */
  16. 16 public static int getSum(int a,int b){
  17. 17 System.out.println("两个int参数");
  18. 18 return a+b;
  19. 19 }
  20. 20 public static int getSum(int a,int b,int c){
  21. 21 System.out.println("三个int参数");
  22. 22 return a+b+c;
  23. 23 }
  24. 24 public static double getSum(double a,double b){
  25. 25 System.out.println("两个double参数");
  26. 26 return a+b;
  27. 27 }
  28. 28 /*
  29. 29 定义方法,对参数求和
  30. 30 参数,没规定几个,数据类型
  31. 31
  32. 32 public static int getSum(int a ,int b){
  33. 33 return a+b;
  34. 34 }
  35. 35
  36. 36 public static double getSumDouble(double a,double b){
  37. 37 return a+b;
  38. 38 }
  39. 39 public static int getSum3(int a,int b, int c){
  40. 40 return a+b+c;
  41. 41 }*/
  42. 42 }
  1. 1 /*
  2. 2 方法重载的注意事项
  3. 3 1. 参数列表必须不同
  4. 4 2. 重载和参数变量名无关
  5. 5 3. 重载和返回值类型无关
  6. 6 4. 重载和修饰符无关
  7. 7 技巧: 重载看方法名和参数列表
  8. 8 */
  9. 9 public class MethodOverLoadDemo_1{
  10. 10 //method(1l,1)
  11. 11
  12. 12
  13. 13 public static void method(int a,int b){
  14. 14
  15. 15 }
  16. 16 public static void method(double a,int b){
  17. 17
  18. 18 }
  19. 19
  20. 20 // void method(int a,int b){
  21. 21 //return 1;
  22. 22 //}
  23. 23
  24. 24 }
  1. 1 /*
  2. 2 实现商品的库存管理
  3. 3 功能:
  4. 4 1. 展示用户选择功能清单
  5. 5 2. 根据选择的功能编号,进行不同的操作
  6. 6 A. 展示所有库存
  7. 7 B. 修改库存数量
  8. 8
  9. 9 分析:
  10. 10 1. 展示用户清单:
  11. 11 输出语句, 用户输入, 选择功能序号
  12. 12 2. 根据选择,调用不同的方法
  13. 13 switch语句
  14. 14 case 1 2 3
  15. 15
  16. 16 A 展示库存
  17. 17 将存储商品的数组,遍历
  18. 18 B 修改库存
  19. 19
  20. 20 修改所有的库存数量
  21. 21 */
  22. 22 import java.util.Scanner;
  23. 23 public class Shopp{
  24. 24 public static void main(String[] args){
  25. 25 //使用数组,保存商品的信息
  26. 26 //品名,尺寸,价格,库存数, 定义5个数组
  27. 27 String[] brand = {"MacBookAir","ThinkpadT450"};
  28. 28 double[] size = {13.3,15.6};
  29. 29 double[] price = {9998.97,6789.56};
  30. 30 int[] count = {0,0};
  31. 31 while(true){
  32. 32 int choose = chooseFunction();
  33. 33 switch(choose){
  34. 34 case 1:
  35. 35 //调用查看库存清单方法
  36. 36 printStore(brand,size,price,count);
  37. 37 break;
  38. 38
  39. 39 case 2:
  40. 40 //调用修改库存的方法
  41. 41 update(brand,count);
  42. 42 break;
  43. 43
  44. 44 case 3:
  45. 45 return ;
  46. 46
  47. 47
  48. 48 default:
  49. 49 System.out.println("没有这个功能");
  50. 50 break;
  51. 51 }
  52. 52 }
  53. 53 }
  54. 54 /*
  55. 55 定义方法,修改所有商品的库存
  56. 56 用户输入1个,修改1个
  57. 57 返回值,没有
  58. 58 参数, 库存数的数组, 品名数组
  59. 59 */
  60. 60 public static void update(String[] brand, int[] count){
  61. 61 //遍历数组,遍历到一个,修改一个
  62. 62 //接受键盘输入
  63. 63 Scanner sc = new Scanner(System.in);
  64. 64 //遍历数组
  65. 65 for(int i = 0; i < brand.length ; i++){
  66. 66 System.out.println("请输入"+brand[i]+"的库存数");
  67. 67 //键盘输入,录入库存, 存储到库存的数组中
  68. 68 int newCount = sc.nextInt();
  69. 69 count[i] = newCount;
  70. 70 }
  71. 71 //int chooseNumber = sc.nextInt();
  72. 72 }
  73. 73
  74. 74 /*
  75. 75 定义方法,展示所有的库存清单,遍历
  76. 76 返回值,没有
  77. 77 参数, 数组
  78. 78 */
  79. 79 public static void printStore(String[] brand,double[] size,double[] price,int[] count){
  80. 80 System.out.println("----------商场库存清单----------");
  81. 81 System.out.println("品牌型号 尺寸 价格 库存数");
  82. 82 //定义变量,计算总库存数,和总价格
  83. 83 int totalCount = 0;
  84. 84 int totalMoney = 0;
  85. 85 //遍历数组,将数组中所有的商品信息打印出来
  86. 86 for(int i = 0 ; i < brand.length ; i++){
  87. 87 System.out.println(brand[i]+" "+size[i]+" "+price[i]+" "+count[i]);
  88. 88 totalCount += count[i];
  89. 89 totalMoney += count[i]*price[i];
  90. 90 }
  91. 91 System.out.println("总库存数: "+totalCount);
  92. 92 System.out.println("商品库存总金额: "+totalMoney);
  93. 93 }
  94. 94
  95. 95 /*
  96. 96 定义方法,实现用户的选择功能,功能的需要返回来
  97. 97 返回值, int
  98. 98 参数, 没有
  99. 99 */
  100. 100 public static int chooseFunction(){
  101. 101 System.out.println("-------------库存管理------------");
  102. 102 System.out.println("1.查看库存清单");
  103. 103 System.out.println("2.修改商品库存数量");
  104. 104 System.out.println("3.退出");
  105. 105 System.out.println("请输入要执行的操作序号:");
  106. 106 //接受键盘输入
  107. 107 Scanner sc = new Scanner(System.in);
  108. 108 int chooseNumber = sc.nextInt();
  109. 109 return chooseNumber;
  110. 110 }
  111. 111 }
  1. 1 /*
  2. 2 实现随机点名器
  3. 3 1. 存储所有学生姓名
  4. 4 2. 预览所有学生姓名,遍历数组
  5. 5 3. 随机数作为索引,到数组中找元素
  6. 6
  7. 7 将功能独立出来, 作成方法,调用方法即可
  8. 8
  9. 9 定义三个功能, 用到同一个姓名数据
  10. 10 姓名存储到数组中,三个方法,使用一个数组中的数据, 方法传递参数
  11. 11 */
  12. 12 import java.util.Random;
  13. 13 public class CallName{
  14. 14 public static void main(String[] args){
  15. 15 //定义数组,存储学生姓名
  16. 16 String[] names = new String[8];
  17. 17 //调用添加姓名方法
  18. 18 addStudent(names);
  19. 19 //调用遍历数组方法
  20. 20 printStudentName(names);
  21. 21 //调用随机姓名的方法
  22. 22 String name = randomStudentName(names);
  23. 23 System.out.println(name);
  24. 24 }
  25. 25 /*
  26. 26 定义方法,随机数,做索引,数组中找到学生姓名
  27. 27 返回值? 学生姓名
  28. 28 参数? 数组
  29. 29 */
  30. 30 public static String randomStudentName(String[] names){
  31. 31 Random ran = new Random();
  32. 32 int index = ran.nextInt(names.length);
  33. 33 return names[index];
  34. 34 }
  35. 35
  36. 36 /*
  37. 37 定义方法,遍历数组
  38. 38 返回值? 没有
  39. 39 参数? 数组
  40. 40 */
  41. 41 public static void printStudentName(String[] names){
  42. 42 for(int i = 0 ; i < names.length ;i++){
  43. 43 System.out.println(names[i]);
  44. 44 }
  45. 45 }
  46. 46
  47. 47 /*
  48. 48 定义方法,实现向数组中添加学生姓名
  49. 49 返回值? 没有,
  50. 50 参数? 参数就是数组
  51. 51 */
  52. 52 public static void addStudent(String[] names){
  53. 53 names[0] = "张三";
  54. 54 names[1] = "李四";
  55. 55 names[2] = "王五";
  56. 56 names[3] = "李蕾";
  57. 57 names[4] = "韩梅梅";
  58. 58 names[5] = "小名";
  59. 59 names[6] = "老王";
  60. 60 names[7] = "小华";
  61. 61 }
  62. 62 }
  1. 1 package com.it.demo03_method;
  2. 2
  3. 3 /*
  4. 4 案例: 演示有参无返回值的方法.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法isEvenNumber(), 该方法接收一个int类型的整数num.
  8. 8 2.判断num是奇数还是偶数, 并打印结果.
  9. 9
  10. 10 涉及到的关于方法的小技巧:
  11. 11 定义方法时的三个明确:
  12. 12 1. 明确方法名.
  13. 13 2. 明确参数列表.
  14. 14 3. 明确返回值的数据类型.
  15. 15
  16. 16 调用方法时的三个步骤:
  17. 17 1. 写方法名.
  18. 18 2. 传参. 方法要什么类型的数据, 我们就传入什么类型的值.
  19. 19 3. 接收. 方法返回什么值, 我们就用对应的数据类型来接收.
  20. 20 */
  21. 21 public class Demo02 {
  22. 22 public static void main(String[] args) {
  23. 23 //调用isEvenNumber()方法, 传入变量.
  24. 24 int a = 10;
  25. 25 isEvenNumber(a); //实参, 实际参与操作的数据
  26. 26 System.out.println("-------------------");
  27. 27 //调用isEvenNumber()方法, 传入常量.
  28. 28 isEvenNumber(21); //实参, 实际参与操作的数据
  29. 29 }
  30. 30
  31. 31 /*
  32. 32 需求: 定义方法isEvenNumber(), 判断指定的数字是否是偶数, 并打印.
  33. 33
  34. 34 定义方法时的三个明确:
  35. 35 1. 明确方法名. isEvenNumber()
  36. 36 2. 明确参数列表. int num
  37. 37 3. 明确返回值的数据类型. void
  38. 38 */
  39. 39 public static void isEvenNumber(int num) { //int num = ? //形参: 形容调用方法, 需要传入什么类型的参数.
  40. 40 //判断指定的数字是否是偶数, 并打印.
  41. 41 if (num % 2 == 0)
  42. 42 System.out.println(num + "是偶数");
  43. 43 else
  44. 44 System.out.println(num + "是奇数");
  45. 45 }
  46. 46 }
  1. 1 package com.it.demo03_method;
  2. 2
  3. 3 /*
  4. 4 案例: 演示无参有返回值的方法.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法getSum(), 该方法内部有两个int类型的整数.
  8. 8 2.获取上述两个整数的和, 并返回.
  9. 9 3.在main方法中调用getSum()方法, 并打印结果.
  10. 10 */
  11. 11 public class Demo03 {
  12. 12 public static void main(String[] args) {
  13. 13 /*
  14. 14 需求: 调用getSum()方法
  15. 15 调用方法时的三个步骤:
  16. 16 1. 写方法名, 调用谁就写谁, 注意大小写, 不要写错了.
  17. 17 2. 传参. 方法要什么类型的数据, 我们就传入什么类型的值.
  18. 18 3. 接收返回值. 方法返回什么类型的数据, 我们就用什么类型的变量来接收.
  19. 19 */
  20. 20 //方式一: 赋值调用, 即: 如果方法有返回值, 我们用变量接收, 然后在操作, 这种情况就叫: 赋值调用. 实际开发常用.
  21. 21 int sum = getSum();
  22. 22 //int sum = 30;
  23. 23 System.out.println(sum);
  24. 24 System.out.println("---------------------");
  25. 25
  26. 26 //方式二: 输出调用, 因为方法会直接返回一个值, 所以我们可以采用输出语句直接打印. 一般在课堂使用, 为了方便我们查看方法的执行结果.
  27. 27 System.out.println(getSum());
  28. 28 System.out.println("---------------------");
  29. 29
  30. 30 //方式三: 直接调用, 无意义, 一般不用.
  31. 31 getSum();
  32. 32 //30;
  33. 33
  34. 34 }
  35. 35
  36. 36 /*
  37. 37 需求: 定义方法getSum(), 用来获取两个整数的和, 并返回.
  38. 38 定义方法的三个明确:
  39. 39 1. 明确方法名. getSum()
  40. 40 2. 明确参数列表. 空参
  41. 41 3. 明确返回值的数据类型. int类型
  42. 42 */
  43. 43 public static int getSum() {
  44. 44 //该方法内部有两个int类型的整数, 获取上述两个整数的和, 并返回.
  45. 45 int a = 10, b = 20;
  46. 46 int sum = a + b;
  47. 47 //返回变量sum的值
  48. 48 return sum;
  49. 49 }
  50. 50 }
  1. 1 package com.it.demo03_method;
  2. 2
  3. 3 /*
  4. 4 案例: 无参有返回值的方法演示.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法isEvenNumber(), 该方法内部有一个整数num.
  8. 8 2.判断num是奇数还是偶数, 并返回结果.
  9. 9 3.在main方法中调用isEvenNumber()方法, 并打印结果.
  10. 10
  11. 11 涉及到的关于方法的小技巧:
  12. 12 定义方法时的三个明确:
  13. 13 1. 明确方法名.
  14. 14 2. 明确参数列表.
  15. 15 3. 明确返回值的数据类型.
  16. 16
  17. 17 调用方法时的三个步骤:
  18. 18 1. 写方法名.
  19. 19 2. 传参. 方法要什么类型的数据, 我们就传入什么类型的值.
  20. 20 3. 接收. 方法返回什么值, 我们就用对应的数据类型来接收.
  21. 21 */
  22. 22 public class Demo04 {
  23. 23 public static void main(String[] args) {
  24. 24 //调用方法, 输出调用.
  25. 25 System.out.println(isEvenNumber());
  26. 26 System.out.println("----------------------------");
  27. 27
  28. 28 //调用方法, 赋值调用.
  29. 29 boolean flag = isEvenNumber();
  30. 30 System.out.println(flag);
  31. 31 }
  32. 32
  33. 33 //需求: 定义方法isEvenNumber(), 该方法内部有一个整数num, 判断num是奇数还是偶数, 并返回结果.
  34. 34 //明确方法名: isEvenNumber(), 明确参数列表: 空参, 明确返回值的数据类型: boolean
  35. 35
  36. 36 /**
  37. 37 * 该方法是用来判读数字是奇数还是偶数的.
  38. 38 * @return true: 偶数, false: 奇数
  39. 39 */
  40. 40 public static boolean isEvenNumber() {
  41. 41 int num = 10;
  42. 42 //判断num是奇数还是偶数, 并返回结果.
  43. 43 /* if(num % 2 == 0)
  44. 44 return true;
  45. 45 else
  46. 46 return false;*/
  47. 47
  48. 48 /*boolean flag = num % 2 == 0 ? true : false;
  49. 49 return flag;*/
  50. 50
  51. 51 /*boolean flag = num % 2 == 0;
  52. 52 return flag;*/
  53. 53
  54. 54 return num % 2 == 0;
  55. 55 }
  56. 56 }
  1. 1 package com.it.demo04_overload;
  2. 2
  3. 3 /*
  4. 4 案例: 方法重载入门
  5. 5
  6. 6 方法重载概述:
  7. 7 同一个类中, 出现方法名相同, 但是参数列表不同的 两个或以上的方法时, 称为方法重载.
  8. 8 方法重载与返回值的数据类型无关.
  9. 9
  10. 10 参数列表不同解释:
  11. 11 1. 参数个数不同.
  12. 12 2. 对应参数的数据类型不同.
  13. 13
  14. 14 解决的问题:
  15. 15 用来解决方法功能相似, 但是方法名不能重名的问题. 简单理解: 就是用来解决方法重名问题的.
  16. 16 */
  17. 17 public class Demo01 {
  18. 18 public static void main(String[] args) {
  19. 19 //1.定义方法compare(), 用来比较两个整型数据是否相等.
  20. 20 //2.要求兼容所有的整数类型, 即(byte, short, int, long)
  21. 21
  22. 22 //调用compare()方法, byte类型
  23. 23 byte b1 = 10, b2 = 20;
  24. 24 System.out.println(compare(b1, b2));
  25. 25 System.out.println("-----------------------------");
  26. 26
  27. 27 //调用compare()方法, short类型
  28. 28 short s1 = 10, s2 = 20;
  29. 29 System.out.println(compare(s1, s2));
  30. 30 System.out.println("-----------------------------");
  31. 31
  32. 32 //调用compare()方法, int类型
  33. 33 System.out.println(compare(20, 10));
  34. 34 System.out.println("-----------------------------");
  35. 35
  36. 36 //调用compare()方法, long类型
  37. 37 long s3 = 10, s4 = 20;
  38. 38 System.out.println(compare(s3, s4));
  39. 39 }
  40. 40
  41. 41 //定义方法compare(), 用来比较两个整型数据是否相等. byte类型
  42. 42 public static boolean compare(byte b1, byte b2) {
  43. 43 System.out.println("byte类型");
  44. 44 return b1 == b2;
  45. 45 }
  46. 46
  47. 47 //定义方法compare(), 用来比较两个整型数据是否相等. short类型
  48. 48 public static boolean compare(short s1, short s2) {
  49. 49 System.out.println("short类型");
  50. 50 return s1 == s2;
  51. 51 }
  52. 52
  53. 53 //定义方法compare(), 用来比较两个整型数据是否相等. int类型
  54. 54 public static boolean compare(int a, int b) {
  55. 55 System.out.println("int类型");
  56. 56 return a == b;
  57. 57 }
  58. 58
  59. 59 //定义方法compare(), 用来比较两个整型数据是否相等. byte类型
  60. 60 public static boolean compare(long b1, long b2) {
  61. 61 System.out.println("long类型");
  62. 62 return b1 == b2;
  63. 63 }
  64. 64
  65. 65 }
  1. package com.it.demo04_overload;
  2.  
  3. /*
  4. 案例: 演示形参是基本类型的情况.
  5.  
  6. 结论:
  7. 如果是基本类型作为形参: 传递的是数值, 所以形参的改变对实参没有任何影响.
  8. */
  9. public class Demo02 {
  10. public static void main(String[] args) {
  11. int number = 100;
  12. System.out.println("调用change方法前:" + number); //100
  13. change(number); //实参.
  14. System.out.println("调用change方法后:" + number); //100
  15. }
  16.  
  17. public static void change(int number) { //形参.
  18. number = 200;
  19. }
  20. }
  1. 1 package com.it.demo04_overload;
  2. 2
  3. 3 /*
  4. 4 案例: 演示形参是引用类型的情况.
  5. 5
  6. 6 结论:
  7. 7 如果是引用类型作为形参: 传递的是地址值, 所以形参的改变直接影响实参.
  8. 8 String类型除外, 当它充当形参类型的时候, 传递的是数值, 即: 用法和基本类型一致.
  9. 9 */
  10. 10 public class Demo03 {
  11. 11 public static void main(String[] args) {
  12. 12 int[] arr = {10, 20, 30}; //地址值: 0x001
  13. 13 System.out.println("调用change方法前:" + arr[1]); //20
  14. 14 change(arr);
  15. 15 System.out.println("调用change方法后:" + arr[1]); //200
  16. 16 }
  17. 17
  18. 18 public static void change(int[] arr) { //地址值: 0x001
  19. 19 arr[1] = 200;
  20. 20 }
  21. 21 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 求和.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法getSum(), 接收两个int类型的整数.
  8. 8 2.获取上述两个整数的和, 并返回.
  9. 9 3.在main方法中调用getSum()方法, 并打印结果.
  10. 10 */
  11. 11 public class Demo05 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求: 调用getSum();
  14. 14 //方式一: 传入变量
  15. 15 int num1 = 10, num2 = 20;
  16. 16 int sum1 = getSum(num1, num2);
  17. 17 System.out.println(sum1);
  18. 18 System.out.println("-----------------------");
  19. 19
  20. 20 //方式二: 传入常量
  21. 21 /*int sum2 = getSum(22, 11);
  22. 22 System.out.println(sum2);*/
  23. 23 System.out.println(getSum(22, 11));
  24. 24 }
  25. 25
  26. 26 /*
  27. 27 定义方法的三个明确:
  28. 28 1. 明确方法名. getSum()
  29. 29 2. 明确参数列表. int a, int b
  30. 30 3. 明确返回值的数据类型. int
  31. 31 */
  32. 32
  33. 33 /**
  34. 34 * 该方法用于获取两个整数的和
  35. 35 * @param a 要进行求和运算的第一个整数.
  36. 36 * @param b 要进行求和运算的第二个整数.
  37. 37 * @return 两个整数的和
  38. 38 */
  39. 39 public static int getSum(int a, int b) { //形参, int a = ?, int b = ?
  40. 40 //求两个整数的和
  41. 41 //合并版
  42. 42 return a + b;
  43. 43
  44. 44 //分解版.
  45. 45 /*int sum = a + b;
  46. 46 return sum;*/
  47. 47 }
  48. 48 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 判断奇偶数.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法isEvenNumber(), 该方法接收一个int类型的整数num.
  8. 8 2.判断num是奇数还是偶数, 并返回结果.
  9. 9 3.在main方法中调用isEvenNumber()方法, 并打印结果.
  10. 10 */
  11. 11 public class Demo06 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求: 调用isEvenNumber()方法
  14. 14 //赋值调用.
  15. 15 boolean flag = isEvenNumber(10);
  16. 16 System.out.println(flag);
  17. 17 System.out.println("=====================");
  18. 18
  19. 19 //输出调用
  20. 20 System.out.println(isEvenNumber(11));
  21. 21 }
  22. 22
  23. 23 //需求: 定义方法, 判断奇偶数.
  24. 24 //文档注释自己补充.
  25. 25 public static boolean isEvenNumber(int num) { //形参, int num = ?
  26. 26 //接收一个int类型的整数num., 判断num是奇数还是偶数, 并返回结果.
  27. 27 return num % 2 == 0;
  28. 28 }
  29. 29 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 求最大值.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法getMax(), 该方法接收两个整数.
  8. 8 2.通过该方法, 获取两个整数的最大值, 并返回.
  9. 9 3.在main方法中调用getMax()方法, 获取最大值并打印.
  10. 10 */
  11. 11 public class Demo07 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求: 调用getMax()方法.
  14. 14 int max = getMax(10, 20);
  15. 15 System.out.println(max);
  16. 16 System.out.println("-------------------");
  17. 17
  18. 18 System.out.println(getMax(21, 11));
  19. 19 }
  20. 20
  21. 21 //需求: 定义方法, 获取两个整数的最大值.
  22. 22
  23. 23 /**
  24. 24 * 该方法是用于获取两个整数的最大值的.
  25. 25 * @param a 要操作的第一个整数.
  26. 26 * @param b 要操作的第二个整数
  27. 27 * @return 两个整数的最大值.
  28. 28 */
  29. 29 public static int getMax(int a, int b) {
  30. 30 //分解版
  31. 31 /*int max = a > b ? a :b;
  32. 32 return max;*/
  33. 33
  34. 34 //合并版
  35. 35 return a > b ? a : b;
  36. 36 }
  37. 37 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 遍历数组
  5. 5
  6. 6 需求:
  7. 7 1.定义方法printArray(), 接收一个int类型的数组.
  8. 8 2.通过该方法, 实现遍历数组的功能.
  9. 9 3.在main方法中, 调用方法, 打印指定的数组.
  10. 10 */
  11. 11 public class Demo08 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求:在main方法中, 调用方法, 打印指定的数组.
  14. 14 int[] arr = {1, 2, 3, 4, 5};
  15. 15 printArray(arr);
  16. 16 System.out.println("---------------------");
  17. 17
  18. 18 int[] arr2 = {100, 200, 300};
  19. 19 printArray(arr2);
  20. 20 }
  21. 21
  22. 22 //1.定义方法printArray(), 接收一个int类型的数组, 通过该方法, 实现遍历数组的功能.
  23. 23 /*
  24. 24 1. 明确方法名. printArray()
  25. 25 2. 明确参数列表. int[] arr
  26. 26 3. 明确返回值的数据类型. void
  27. 27 */
  28. 28 public static void printArray(int[] arr) {
  29. 29 //这里是遍历数组的代码
  30. 30 for (int i = 0; i < arr.length; i++) {
  31. 31 System.out.println(arr[i]);
  32. 32 }
  33. 33 }
  34. 34 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 获取数组元素最值.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法getMax(), 接收一个int类型的数组.
  8. 8 2.通过该方法, 获取数组元素中的最大值.
  9. 9 3.在main方法中, 调用方法, 打印对应的结果.
  10. 10 */
  11. 11 public class Demo09 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求: 调用getMax();
  14. 14 int[] arr = {11, 33, 22, 55};
  15. 15
  16. 16 //赋值调用, 实际开发用.
  17. 17 int max = getMax(arr);
  18. 18 System.out.println(max);
  19. 19 System.out.println("-----------------------");
  20. 20
  21. 21 //输出调用, 课堂用.
  22. 22 System.out.println(getMax(arr));
  23. 23 }
  24. 24
  25. 25 /*
  26. 26 需求: 定义方法getMax(), 获取int数组元素的最大值.
  27. 27
  28. 28 定义方法的3个明确:
  29. 29 1. 明确方法名. getMax()
  30. 30 2. 明确参数列表. int[] arr
  31. 31 3. 明确返回值的数据类型. int
  32. 32 */
  33. 33 public static int getMax(int[] arr) { //形参, 形容调用方法需要给什么类型的值, int[] arr = ?
  34. 34 //1. 定义变量, 用来记录最大值.
  35. 35 int max = arr[0];
  36. 36 //2. 遍历数组, 获取每个元素.
  37. 37 for (int i = 0; i < arr.length; i++) {
  38. 38 //3. 判断当前获取到的元素是否大于临时变量max, 如果大就将其值赋值给变量max
  39. 39 if (arr[i] > max)
  40. 40 max = arr[i];
  41. 41 }
  42. 42 //4. 返回结果.
  43. 43 return max;
  44. 44 }
  45. 45 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 方法案例: 模拟计算器.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法, 接收两个int类型的整数.
  8. 8 2.分别获取这两个整数的加减乘除的运算结果, 然后返回.
  9. 9 3.在main方法中调用该方法, 并打印结果.
  10. 10 */
  11. 11 public class Demo10 {
  12. 12 public static void main(String[] args) {
  13. 13 //需求: 调用calculate(), 模拟计算器.
  14. 14 int[] arr = calculate(10, 3);//实参, 实际参与运算的数字
  15. 15
  16. 16 //遍历数组, 查看结果.
  17. 17 for (int i = 0; i < arr.length; i++) {
  18. 18 System.out.println(arr[i]);
  19. 19 }
  20. 20 }
  21. 21
  22. 22 //需求: 定义方法calculate(), 模拟计算器.
  23. 23 /*
  24. 24 定义方法的三个明确:
  25. 25 1. 明确方法名. calculate()
  26. 26 2. 明确参数列表. int a, int b
  27. 27 3. 明确返回值的数据类型. int[] 因为要同时返回加减乘除这四个值, 所以用数组.
  28. 28 */
  29. 29
  30. 30 /**
  31. 31 * 定义方法, 模拟计算器, 即: 获取两个整数的加减乘除运算结果.
  32. 32 * @param a 要操作的第一个整数
  33. 33 * @param b 要操作的第二个整数
  34. 34 * @return 返回这两个整数加减乘除的运算结果.
  35. 35 */
  36. 36 public static int[] calculate(int a, int b) { //形参, int a = ?, int b = ?
  37. 37 //1. 定义int[]数组, 长度为4, 分别表示: 加减乘除的运算结果.
  38. 38 int[] arr = new int[4];
  39. 39 //2. 进行加减乘除运算, 并把结果存储到数组中.
  40. 40 arr[0] = a + b;
  41. 41 arr[1] = a - b;
  42. 42 arr[2] = a * b;
  43. 43 arr[3] = a / b;
  44. 44 //3. 返回数组.
  45. 45 return arr;
  46. 46 }
  47. 47 }
  1. 1 package com.it.demo02_exercise;
  2. 2
  3. 3 /*
  4. 4 案例: 按照格式打印数组.
  5. 5
  6. 6 需求:
  7. 7 1.定义方法printArray(), 该方法用来打印数组. [11, 22, 33, 44, 55]
  8. 8 2.打印格式为: [11, 22, 33, 44, 55]
  9. 9 */
  10. 10 public class Demo11 {
  11. 11 public static void main(String[] args) {
  12. 12 //需求: 调用printArray()方法
  13. 13 int[] arr = {11, 22, 33, 44, 55};
  14. 14 printArray(arr);
  15. 15 }
  16. 16
  17. 17 //需求: 定义方法printArray(), 该方法用来打印数组.
  18. 18 public static void printArray(int[] arr) {
  19. 19 //里边写的是具体的打印数组元素的操作.
  20. 20 //1. 先输出"[", 记得不要换行.
  21. 21 System.out.print("[");
  22. 22 //2. 遍历数组, 获取每一个元素.
  23. 23 for (int i = 0; i < arr.length; i++) {
  24. 24 //arr[i]就是数组中的每个元素.
  25. 25 //3. 判断当前元素是否是最后一个元素, 如果是, 就输出: 元素 + "]" + 换行
  26. 26 if (i == arr.length - 1)
  27. 27 System.out.println(arr[i] + "]");
  28. 28 else
  29. 29 //4. 如果不是最后一个元素, 就输出: 元素 + ", ", 不换行
  30. 30 System.out.print(arr[i] + ", ");
  31. 31 }
  32. 32
  33. 33 }
  34. 34 }

方法调用图解

有参无返回调用图解

方法参数传递问题图解

方法的参数传递问题——引用类型

Java 复习整理day04的更多相关文章

  1. java 复习整理(一 java简介和基础语法)

    现在公司用的是封装太多东西的平台开发,觉着之前学的东西很多都忘了,所以想好好总结回顾一下.之前总是想学很多编程语言像python.s6.node.react,但现在越来越体会到编程语言只是一个开发的工 ...

  2. java复习整理(六 异常处理)

    一.异常简介  在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性.        ...

  3. java 复习整理(五 类加载机制与对象初始化)

    类加载机制与对象初始化   一 . 类加载机制 类加载机制是指.class文件加载到jvm并形成Class对象的机制.之后应用可对Class对象进行实例化并调用.类加载机制可在运行时动态加载外部的类, ...

  4. java 复习整理(四 String类详解)

    String 类详解   StringBuilder与StringBuffer的功能基本相同,不同之处在于StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此效率上S ...

  5. java 复习整理(三 修饰符)

    访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权限. 默认的,也称为default,在同一包内可见,不使用任何修饰符. 私有的,以pr ...

  6. java 复习整理(二 数据类型和几种变量)

    源文件声明规则 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则. 一个源文件中只能有一个public类 一个源文件可以有多个非public类 源文件的名 ...

  7. Java 复习整理day10

    package com.it.demo01_quickstart; /* 案例: 讲解网络编程相关概念. 网络编程简介: 概述: 网络编程也叫: 套接字编程, Socket编程, 就是用来实现 网络互 ...

  8. Java 复习整理day09

    package com.it.demo01_thread; /* 案例: 多线程简介. 概述: 指的是进程有多条执行路径, 统称叫: 多线程. 进程: 指的是可执行程序, 文件(例如: .exe) 大 ...

  9. Java 复习整理day08

    package com.it.demo02_lambda; //接口, 表示动物. //public abstract class Animal { //报错, Lambda表达式只针对于接口有效 p ...

随机推荐

  1. 「译」用 Blazor WebAssembly 实现微前端

    原文作者: Wael Kdouh 原文链接:https://medium.com/@waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f ...

  2. DRF之访问权限控制和访问频率控制(节流)

    权限控制 前言 用户验证用户权限,根据不同访问权限控制对不同内容的访问. 建议了解视图.token验证的内容. 使用流程 自定义访问权限类,继承BasePermission,重写has_permiss ...

  3. IDEA:配置Tomcat并运行应用

    1.File->ProjectStructre->Artifacts 如下界面 3.下一步:如图所示 4.选择相应的Module就行 5.第一次运行程序时最好选择运行的配置,否则可能运行的 ...

  4. 【JDBC核心】获取数据库连接

    获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...

  5. LeetCode561 数组拆分 I

    给定长度为 2n 的数组, 你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), ..., (an, bn) ,使得从1 到 n 的 min(ai, bi) 总和最大. 示例 ...

  6. 关于软件架构中的b/s

    **B/S架构 b/s只需要一个浏览器,用户就可以通过不同的网址访问不同的服务器程序. 优点:开发,安装,部署,维护简单 缺点:对硬件要求过高,用户的体验会受到影响 首先是资源分类:**可以分为静态资 ...

  7. wpf 中 Ellipse 对象对动画性能的影响

    vs2019 .NetFramework 4.8 win10-64 1909 接手一个wpf项目,某窗口中包含大量的 Shape 对象(线,矩形,圆形等). 这些内容要匀速的向左平移,类似于游戏&qu ...

  8. 【Nginx】yum安装nginx

    这里是nginx的yum安装源: centos7: rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-cent ...

  9. 【RAC】安装rac的时候。报错checking for oracle home incompatibilities failed

    背景:由于oracle安装的时候中途出现了问题,解决过后,发现报错了 图形化安装的时候,有这个问题出现 解决办法: 删除安装过的所有缓存,和文件即可 1.删除ORACLE_BASE下的所有文件 2.删 ...

  10. LeetCode965. 单值二叉树

    题目 1 class Solution { 2 public: 3 int flag = 0; 4 bool isUnivalTree(TreeNode* root){ 5 isUnivalTree1 ...