Java 复习整理day04

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

而采取的解决办法。

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

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

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

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

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

个功能的办法。

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

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

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

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

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

 1 /*
 2    方法的定义格式
 3       修饰符 返回值类型 方法的名字 (参数列表...){
 4            方法的功能主体
 5              循环,判断,变量,比较,运算
 6            return ;
 7       }
 8       
 9      修饰符:  固定写法  public static
10      返回值类型:  方法在运算后,结果的数据类型
11      方法名:  自定义名字,满足标识符规范, 方法名字首字母小写,后面每个单词首字母大写
12      参数列表: 方法的运算过程中,是否有未知的数据, 如果有未知的数据,定义在参数列表上 (定义变量)
13      return: 方法的返回, 将计算的结果返回. 结束方法
14 */
15 public class MethodDemo{
16     
17     public static void main(String[] args){
18          //调用方法, 方法执行起来
19          // 在方法main中,调用方法 getArea
20 
21          int area = getArea(5,6);
22          System.out.println("面积是: "+area);
23         
24     }
25     /*
26        要求: 计算一个长方形的面积
27        定义方法解决这个要求
28        分析方法定义过程:
29           1. 明确方法计算后的结果的数据类型 int  定义格式对应的就是返回值类型
30           2. 方法计算过程中,有没有未知的数据, 宽和长, 未知数据的数据类型 int
31               未知数的变量,定义在方法的小括号内
32     */
33     public static int  getArea(int w, int h){
34         //实现方法的功能主体
35         //int area = w * h;
36         return w * h;
37     }
38 }
 1 package com.it.demo03_method;
 2 
 3 /*
 4     案例: 演示方法的定义格式.
 5 
 6     方法简介:
 7         概述:
 8             就是把一些具有独立功能的代码封装起来, 使其成为一个具有特殊功能的代码集, 这个代码集就叫: 方法.
 9         目的:
10             提高代码的复用性.      //我们把重复做事儿抽取成方法, 以后需要用到该逻辑的时候, 不需要重新编写代码了, 直接调用方法即可.
11         格式:
12             修饰符 返回值的数据类型 方法名(数据类型 参数名1, 数据类型 参数名2) {
13                 //方法体
14                 return 具体的返回值;
15             }
16         格式详解:
17             修饰符:                目前先理解为就是 public static,   面向对象详解.
18             返回值的数据类型:      指的是方法调用完毕后, 返回给我们一个什么类型的值.
19             方法名:                遵循"小驼峰命名法", 而且要符合命名规则和规范, 是帮我们调用指定方法的.
20             (数据类型 参数名1):    形式参数, 形容调用方法的时候, 需要传入什么类型的值, 注意: 形参没有具体指.
21             方法体:                具体的逻辑代码.
22             return 具体的返回值:   方法指定完毕后, 要返回的具体的结果.
23         注意事项:
24             1. 方法与方法之间是平级关系, 不能嵌套定义.
25             2. 方法只有被调用, 才会执行.
26             3. 定义方法的时候, 参数列表中的参数叫: 形式参数(简称: 形参), 形容调用方法需要传入什么类型的值.
27             4. 调用方法的时候, 参数列表中传入的具体的值叫: 实际参数(实参), 指的是具体参与操作的数据.
28             5. 如果方法没有明确的返回值, 则返回值的数据类型必须写成 void
29             6. 如果方法没有明确的返回值, 则return语句可以省略不写.
30             7. 方法的功能越单一越好.
31         学习"方法"这个技术点的小技巧:
32             定义方法的三个明确:
33                 1. 明确方法名.
34                 2. 明确参数列表.
35                 3. 明确返回值的数据类型.
36 
37             调用方法时的三个步骤:
38                 1. 写方法名,    调用谁就写谁, 注意大小写, 不要写错了.
39                 2. 传参.        方法要什么类型的数据, 我们就传入什么类型的值.
40                 3. 接收返回值.  方法返回什么类型的数据, 我们就用什么类型的变量来接收.
41  */
42 public class Demo01 {
43     //main方法是程序的主入口, 所有的代码都是从这里开始执行的.
44     public static void main(String[] args) {
45         //调用printHello()方法
46         printHello();
47     }
48 
49     //需求: 定义printHello()方法, 用来打印"Hello World!"字符串.
50     /*
51         定义方法的三个明确:
52             1. 明确方法名.               printHello()
53             2. 明确参数列表.             空参
54             3. 明确返回值的数据类型.     无具体返回值, 即: void类型
55      */
56     public static void printHello() {
57         //方法体
58         System.out.println("Hello World! 1");
59         System.out.println("Hello World! 2");
60         System.out.println("Hello World! 3");
61         System.out.println("Hello World! 4");
62     }
63 }

 

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

/*
    案例: 演示形参是基本类型的情况.

    结论:
        如果是基本类型作为形参: 传递的是数值, 所以形参的改变对实参没有任何影响.
 */
public class Demo02 {
    public static void main(String[] args) {
        int number = 100;
        System.out.println("调用change方法前:" + number);        //100
        change(number);     //实参.
        System.out.println("调用change方法后:" + number);        //100
    }

    public static void change(int number) {    //形参.
        number = 200;
    }
}
 1 package com.it.demo04_overload;
 2 
 3 /*
 4     案例: 演示形参是引用类型的情况.
 5 
 6     结论:
 7         如果是引用类型作为形参: 传递的是地址值, 所以形参的改变直接影响实参.
 8         String类型除外, 当它充当形参类型的时候, 传递的是数值, 即: 用法和基本类型一致.
 9  */
10 public class Demo03 {
11     public static void main(String[] args) {
12         int[] arr = {10, 20, 30};           //地址值: 0x001
13         System.out.println("调用change方法前:" + arr[1]);        //20
14         change(arr);
15         System.out.println("调用change方法后:" + arr[1]);        //200
16     }
17 
18     public static void change(int[] arr) {  //地址值: 0x001
19         arr[1] = 200;
20     }
21 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 求和.
 5 
 6     需求:
 7         1.定义方法getSum(), 接收两个int类型的整数.
 8         2.获取上述两个整数的和, 并返回.
 9         3.在main方法中调用getSum()方法, 并打印结果.
10  */
11 public class Demo05 {
12     public static void main(String[] args) {
13         //需求: 调用getSum();
14         //方式一: 传入变量
15         int num1 = 10, num2 = 20;
16         int sum1 = getSum(num1, num2);
17         System.out.println(sum1);
18         System.out.println("-----------------------");
19 
20         //方式二: 传入常量
21         /*int sum2 = getSum(22, 11);
22         System.out.println(sum2);*/
23         System.out.println(getSum(22, 11));
24     }
25 
26     /*
27         定义方法的三个明确:
28             1. 明确方法名.               getSum()
29             2. 明确参数列表.             int a, int b
30             3. 明确返回值的数据类型.     int
31      */
32 
33     /**
34      * 该方法用于获取两个整数的和
35      * @param a 要进行求和运算的第一个整数.
36      * @param b 要进行求和运算的第二个整数.
37      * @return 两个整数的和
38      */
39     public static int getSum(int a, int b) {   //形参,   int a = ?,  int b = ?
40         //求两个整数的和
41         //合并版
42         return a + b;
43 
44         //分解版.
45         /*int sum = a + b;
46         return sum;*/
47     }
48 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 判断奇偶数.
 5 
 6     需求:
 7         1.定义方法isEvenNumber(), 该方法接收一个int类型的整数num.
 8         2.判断num是奇数还是偶数, 并返回结果.
 9         3.在main方法中调用isEvenNumber()方法, 并打印结果.
10  */
11 public class Demo06 {
12     public static void main(String[] args) {
13         //需求: 调用isEvenNumber()方法
14         //赋值调用.
15         boolean flag = isEvenNumber(10);
16         System.out.println(flag);
17         System.out.println("=====================");
18 
19         //输出调用
20         System.out.println(isEvenNumber(11));
21     }
22 
23     //需求: 定义方法, 判断奇偶数.
24     //文档注释自己补充.
25     public static boolean isEvenNumber(int num) {       //形参, int num = ?
26         //接收一个int类型的整数num., 判断num是奇数还是偶数, 并返回结果.
27         return num % 2 == 0;
28     }
29 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 求最大值.
 5 
 6     需求:
 7         1.定义方法getMax(), 该方法接收两个整数.
 8         2.通过该方法, 获取两个整数的最大值, 并返回.
 9         3.在main方法中调用getMax()方法, 获取最大值并打印.
10  */
11 public class Demo07 {
12     public static void main(String[] args) {
13         //需求: 调用getMax()方法.
14         int max = getMax(10, 20);
15         System.out.println(max);
16         System.out.println("-------------------");
17 
18         System.out.println(getMax(21, 11));
19     }
20 
21     //需求: 定义方法, 获取两个整数的最大值.
22 
23     /**
24      * 该方法是用于获取两个整数的最大值的.
25      * @param a 要操作的第一个整数.
26      * @param b 要操作的第二个整数
27      * @return 两个整数的最大值.
28      */
29     public static int getMax(int a, int b) {
30         //分解版
31         /*int max = a > b ? a :b;
32         return max;*/
33 
34         //合并版
35         return  a > b ? a : b;
36     }
37 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 遍历数组
 5 
 6     需求:
 7         1.定义方法printArray(), 接收一个int类型的数组.
 8         2.通过该方法, 实现遍历数组的功能.
 9         3.在main方法中, 调用方法, 打印指定的数组.
10  */
11 public class Demo08 {
12     public static void main(String[] args) {
13         //需求:在main方法中, 调用方法, 打印指定的数组.
14         int[] arr = {1, 2, 3, 4, 5};
15         printArray(arr);
16         System.out.println("---------------------");
17 
18         int[] arr2 = {100, 200, 300};
19         printArray(arr2);
20     }
21 
22     //1.定义方法printArray(), 接收一个int类型的数组, 通过该方法, 实现遍历数组的功能.
23     /*
24         1. 明确方法名.               printArray()
25         2. 明确参数列表.             int[] arr
26         3. 明确返回值的数据类型.     void
27      */
28     public static void printArray(int[] arr) {
29         //这里是遍历数组的代码
30         for (int i = 0; i < arr.length; i++) {
31             System.out.println(arr[i]);
32         }
33     }
34 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 获取数组元素最值.
 5 
 6     需求:
 7         1.定义方法getMax(), 接收一个int类型的数组.
 8         2.通过该方法, 获取数组元素中的最大值.
 9         3.在main方法中, 调用方法, 打印对应的结果.
10  */
11 public class Demo09 {
12     public static void main(String[] args) {
13         //需求: 调用getMax();
14         int[] arr = {11, 33, 22, 55};
15 
16         //赋值调用, 实际开发用.
17         int max = getMax(arr);
18         System.out.println(max);
19         System.out.println("-----------------------");
20 
21         //输出调用, 课堂用.
22         System.out.println(getMax(arr));
23     }
24 
25     /*
26         需求: 定义方法getMax(), 获取int数组元素的最大值.
27 
28         定义方法的3个明确:
29             1. 明确方法名.               getMax()
30             2. 明确参数列表.             int[] arr
31             3. 明确返回值的数据类型.     int
32      */
33     public static int getMax(int[] arr) {       //形参, 形容调用方法需要给什么类型的值, int[] arr = ?
34         //1. 定义变量, 用来记录最大值.
35         int max = arr[0];
36         //2. 遍历数组, 获取每个元素.
37         for (int i = 0; i < arr.length; i++) {
38             //3. 判断当前获取到的元素是否大于临时变量max, 如果大就将其值赋值给变量max
39             if (arr[i] > max)
40                 max = arr[i];
41         }
42         //4. 返回结果.
43         return max;
44     }
45 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     方法案例: 模拟计算器.
 5 
 6     需求:
 7         1.定义方法, 接收两个int类型的整数.
 8         2.分别获取这两个整数的加减乘除的运算结果, 然后返回.
 9         3.在main方法中调用该方法, 并打印结果.
10  */
11 public class Demo10 {
12     public static void main(String[] args) {
13         //需求: 调用calculate(), 模拟计算器.
14         int[] arr = calculate(10, 3);//实参, 实际参与运算的数字
15 
16         //遍历数组, 查看结果.
17         for (int i = 0; i < arr.length; i++) {
18             System.out.println(arr[i]);
19         }
20     }
21 
22     //需求: 定义方法calculate(), 模拟计算器.
23     /*
24          定义方法的三个明确:
25             1. 明确方法名.                   calculate()
26             2. 明确参数列表.                 int a, int b
27             3. 明确返回值的数据类型.         int[]    因为要同时返回加减乘除这四个值, 所以用数组.
28      */
29 
30     /**
31      * 定义方法, 模拟计算器, 即: 获取两个整数的加减乘除运算结果.
32      * @param a 要操作的第一个整数
33      * @param b 要操作的第二个整数
34      * @return  返回这两个整数加减乘除的运算结果.
35      */
36     public static int[] calculate(int a, int b) {       //形参, int a = ?,  int b = ?
37         //1. 定义int[]数组, 长度为4, 分别表示: 加减乘除的运算结果.
38         int[] arr = new int[4];
39         //2. 进行加减乘除运算, 并把结果存储到数组中.
40         arr[0] = a + b;
41         arr[1] = a - b;
42         arr[2] = a * b;
43         arr[3] = a / b;
44         //3. 返回数组.
45         return arr;
46     }
47 }
 1 package com.it.demo02_exercise;
 2 
 3 /*
 4     案例: 按照格式打印数组.
 5 
 6     需求:
 7         1.定义方法printArray(), 该方法用来打印数组.    [11, 22, 33, 44, 55]
 8         2.打印格式为: [11, 22, 33, 44, 55]
 9  */
10 public class Demo11 {
11     public static void main(String[] args) {
12         //需求: 调用printArray()方法
13         int[] arr = {11, 22, 33, 44, 55};
14         printArray(arr);
15     }
16 
17     //需求: 定义方法printArray(), 该方法用来打印数组.
18     public static void printArray(int[] arr) {
19         //里边写的是具体的打印数组元素的操作.
20         //1. 先输出"[", 记得不要换行.
21         System.out.print("[");
22         //2. 遍历数组, 获取每一个元素.
23         for (int i = 0; i < arr.length; i++) {
24             //arr[i]就是数组中的每个元素.
25             //3. 判断当前元素是否是最后一个元素, 如果是, 就输出: 元素 + "]" + 换行
26             if (i == arr.length - 1)
27                 System.out.println(arr[i] + "]");
28             else
29                 //4. 如果不是最后一个元素, 就输出: 元素 + ", ", 不换行
30                 System.out.print(arr[i] + ", ");
31         }
32 
33     }
34 }

 

方法调用图解

Java 复习整理day04

 

 

 

有参无返回调用图解

Java 复习整理day04

 

 

方法参数传递问题图解

Java 复习整理day04

 

 

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

 

 Java 复习整理day04

 

上一篇:spring_day04


下一篇:java学习笔记(day04)