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 复习整理(一 java简介和基础语法)
现在公司用的是封装太多东西的平台开发,觉着之前学的东西很多都忘了,所以想好好总结回顾一下.之前总是想学很多编程语言像python.s6.node.react,但现在越来越体会到编程语言只是一个开发的工 ...
- java复习整理(六 异常处理)
一.异常简介 在 Java 中,所有的异常都有一个共同的祖先 Throwable(可抛出).Throwable 指定代码中可用异常传播机制通过 Java 应用程序传输的任何问题的共性. ...
- java 复习整理(五 类加载机制与对象初始化)
类加载机制与对象初始化 一 . 类加载机制 类加载机制是指.class文件加载到jvm并形成Class对象的机制.之后应用可对Class对象进行实例化并调用.类加载机制可在运行时动态加载外部的类, ...
- java 复习整理(四 String类详解)
String 类详解 StringBuilder与StringBuffer的功能基本相同,不同之处在于StringBuilder是非线程安全的,而StringBuffer是线程安全的,因此效率上S ...
- java 复习整理(三 修饰符)
访问控制修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java支持4种不同的访问权限. 默认的,也称为default,在同一包内可见,不使用任何修饰符. 私有的,以pr ...
- java 复习整理(二 数据类型和几种变量)
源文件声明规则 当在一个源文件中定义多个类,并且还有import语句和package语句时,要特别注意这些规则. 一个源文件中只能有一个public类 一个源文件可以有多个非public类 源文件的名 ...
- Java 复习整理day10
package com.it.demo01_quickstart; /* 案例: 讲解网络编程相关概念. 网络编程简介: 概述: 网络编程也叫: 套接字编程, Socket编程, 就是用来实现 网络互 ...
- Java 复习整理day09
package com.it.demo01_thread; /* 案例: 多线程简介. 概述: 指的是进程有多条执行路径, 统称叫: 多线程. 进程: 指的是可执行程序, 文件(例如: .exe) 大 ...
- Java 复习整理day08
package com.it.demo02_lambda; //接口, 表示动物. //public abstract class Animal { //报错, Lambda表达式只针对于接口有效 p ...
随机推荐
- 二、集群配置SSH免密登录
一.以3个几点为例,分别为master.slave01.slave02 1.分别生成自己节点密钥对 master: 创建dsa免密代码:ssh-keygen -t dsa -P '' -f ~/.ss ...
- MongoDB 基础手册(一)
作者:云怀大师兄 博客园:https://www.cnblogs.com/yunhuai/ 公众号:云怀大师兄 与Mysql概念对比 说明 MySQL MongoDB 数据库 DatatBase Da ...
- 十六:SQL注入之查询方式及报错盲注
在很多注入时,有很多注入会出现无回显的情况,其中不回显的原因可能是SQL查询语句有问题,这时候我们需要用到相关的报错或者盲注进行后续操作,同时作为手工注入的时候,需要提前了解SQL语句能更好的选择对应 ...
- (十三)利用BASE_DIR来import模板
实际工程的组织架构一般是这样的: bin包下的bin.py是实际的执行文件,my_mould包下的是业务逻辑的实现模板 bin.py需要import my_mould下的py文件,而bin和my_mo ...
- [CPP] 智能指针
介绍 C++ 的智能指针 (Smart Pointers) 相关 API. C++ 中的智能指针是为了解决内存泄漏.重复释放等问题而提出的,它基于 RAII (Resource Acquisition ...
- 什么是开发中经常说的'POCO'
什么是开发中经常说的'POCO'Posted By : 蓝狐Updated On : 2015-07-19在看一些EF的文章,经常提到POCO这个词,但是,有没有比较详细的说这个POCO是什么意思呢? ...
- SDUST数据结构 - chap8 查找
选择题: 函数题: 6-1 二分查找: 裁判测试程序样例: #include <stdio.h> #include <stdlib.h> #define MAXSIZE 10 ...
- Flask+pin
Flask+SSTI的新火花 记一次buu刷题记和回顾祥云杯被虐出屎的经历.题目:[GYCTF2020]FlaskApp 一 题目初见 朴实无华的页面,一个base64的小程序页面 看到有提示. 我就 ...
- SAP下载文档为乱码
通过事物WE60下载的文档为乱码,主要原因是编码格式的不匹配,通常默认的编码格式为ANSI编码,那么我们需要将源码的编码格式转换成UTF-8,这样问题可以解决了. 附:编码格式介绍 不同的国家和地 ...
- 基于.net5 wtm框架、uni-app微信公众号开发一、公众号授权
前端公众号授权 公众号设置 0.首先用IIS创建一个空目录的网站用于公众号域名验证,接着把该网站内网穿透出去,推荐用utools工具,官网:https://u.tools/ 下载安装好后搜索内网穿透并 ...