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

而采取的解决办法。

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

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

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

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

  在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的更多相关文章

  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. 解析SwiftUI布局细节(二)循环轮播+复杂布局

    前言 上一篇我们总结的主要是VStack里面的东西,由他延伸到 @ViewBuilder, 接着我们上一篇总结的我们这篇内容主要说的是下面的几点,在这些东西说完后我准备解析一下苹果在SiwftUI文档 ...

  2. linux下 shell时间处理

    一.hour #获取当前时间年月日时分秒current_create_time=`date +"%Y-%m-%d %H:%M:%S"` echo $current_create_t ...

  3. Spring 抽象的缓存包 spring-cache

    项目实战 用户信息查询接口中,使用@Cacheable注解  绑定相关信息接口中,使用@CachePut更新用户信息到缓存 更新用户信息接口中,使用@CacheEvict删除缓存信息 使用步骤 添加依 ...

  4. 用python做youtube自动化下载器 思路

    目录 0. 思路 1.准备 i.savfrom.net 2. 探索并规划获取方式 i.总览 ii. 获取该网页取到下载url的请求 iii. 在本地获取请求 iv.解析请求结果 v.解析解密后的结果 ...

  5. Mirai框架qq机器人教程 新版

    Mirai框架qq机器人教程 新版 前言 资料列表 1.准备 i. 配置java环境 ii. 配置IDE iii. 下载mirai-console-loader(mcl)作为启动器 2.创建mirai ...

  6. PHP 自定义 alert 跳转方法

    /** * 跳转方法 * @param $msg * @param null $path * @param null $parent */ public function alert($msg,$pa ...

  7. .netcore利用perf分析高cpu使用率

    目录 一 在宿主机运行perf 二 容器内安装perf 1,重新构建镜像 2,下载火焰图生成脚本 3,安装linux-perf 三 CPU占用分析 1,perf record捕获进程 2,生成火焰图 ...

  8. 【Linux】ssh远程连接到指定ip的指定用户上

    通过ssh可以远程连接到其他的机器上,但是如果只想连接到指定的用户的话 需要这样做: -l 选项 (是L不是I,小写) ssh IP -l 用户名 这里的ip如果在hosts下就可以直接输入域名或者主 ...

  9. 类转json的基类实现

    类转json的基类实现 项目地址 github地址 实现原理 使用反射获取类的属性名和属性内容.具体原理可以自己查一下资料 对一个类调用getClass().getDeclaredFields()可以 ...

  10. cut和tr命令的联合使用

    cut的-d选项只能是单个字符,而对于多个连续相同字符分隔的字段,单凭cut命令是达不到想要的效果的,特别是多个连续空格分隔时. 但借助tr -s的压缩重复字符功能,可以将多个连续空格压缩为一个空格, ...