01.方法定义格式及格式解释
package com.bird_01; /* * 方法:其实就是完成特定功能的代码块 * * 定义格式: * 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ * 方法体; * return 返回值 * } * 格式解释: * A:修饰符 目前记住public static * B:返回值类型 用于限定返回值的数据类型 * C:方法名 为了方便我们调用方法的名字 * D:参数类型 用于限定调用方法时传入的数据的类型 * E:参数名 用于接收调用方法时传入的数据的变量 * F:方法体 完成功能的代码 * G:return 结束方法,并且把返回值带给调用者 * */ public class MethodDemo { }
02.求和方法的编写
package com.bird_01; /* * 写一个方法有两个明确: * A:返回值类型 明确功能结果的数据类型 * B:参数列表 明确有几个参数,以及参数的数据类型 */ public class MethodDemo { public static void main(String[] args) { } /* * 两个明确: * 返回值类型:int * 参数列表:int a, int b */ public static int sum(int a,int b){ int c = a + b; return c; } }
03.求和方法的调用
package com.bird_01; /* * 方法的调用:(有明确返回值的方法调用) * A:单独调用:没有意义 * B:输出调用,有意义,但是不够好,因为我可能需要拿结果进行进一步的操作 * C:赋值调用,推荐方式 */ public class MethodDemo2 { public static void main(String[] args) { //单独调用 //sum(10,20); //输出调用 //System.out.println(sum(10,20)); //赋值调用 int result = sum(10,20); //可以对result进行操作 //result += 10; System.out.println(result); } /* * 求和方法 * * 两个明确: 返回值类型:int 参数列表:int a,int b * */ public static int sum(int a, int b) { int c = a + b; return c; } }
04.求和方法调用图解
05.方法练习之获取两个数据中较大值
package com.bird_01; import java.util.Scanner; /* * 键盘录入两个数据,返回两个数中的较大值 */ public class MethodTest { public static void main(String[] args) { // 创建输入对象 Scanner sc = new Scanner(System.in); // 接收数据 System.out.println("请输入第一个数据"); int a = sc.nextInt(); System.out.println("请输入第二个数据"); int b = sc.nextInt(); // 调用方法 int c = getMax(a, b); System.out.println("最大的数是:" + c); } /* * 返回两个数中的较大值 * * 两个明确: 返回值类型:int 参数列表:int a,int b */ public static int getMax(int a, int b) { if (a > b) { return a; } else { return b; } } }
06.方法练习之比较两个数是否相等
package com.bird_01; import java.util.Scanner; /* * 键盘录入两个数据,比较两个数是否相等 */ public class MethodTest2 { public static void main(String[] args) { //创建输入对象 Scanner sc = new Scanner(System.in); //接收数据 System.out.println("请输入第一个数据"); int x = sc.nextInt(); System.out.println("请输入第二个数据"); int y = sc.nextInt(); //调用方法 boolean b = compare(x,y); //输出结果 System.out.println("b:"+b); } /* * 比较两个数是否相等 * * 两个明确: 返回值类型:boolean 参数列表:int a,int b */ public static boolean compare(int a, int b) { if (a == b) { return true; } else { return false; } } }
07.方法练习之比较三个数的最大值
package com.bird_01; import java.util.Scanner; /* * 键盘录入三个数,返回其中最大值 */ public class MethodTest3 { public static void main(String[] args) { //创建键盘输入对象 Scanner sc = new Scanner(System.in); //接收录入数据 System.out.println("请输入第一个数据"); int a = sc.nextInt(); System.out.println("请输入第二个数据"); int b = sc.nextInt(); System.out.println("请输入第三个数据"); int c = sc.nextInt(); //调用方法 int max = getMax(a,b,c); //输出结果 System.out.println("最大数是:"+max); } /* * 返回三个数的最大值 * * 两个明确: 返回值类型:int 参数列表:int a, int b,int c */ public static int getMax(int a, int b, int c) { int max = a; if (b > max) { max = b; } if (c > max) { max = c; } return max; } }
08.void修饰符方法的调用
package com.bird_02; /* * 需求:写一个方法,在控制台输出10次HelloWorld案例 * * 两个明确: * 返回值类型:void * 参数列表:无 * * 如果一个方法没有明确的返回值类型,也不能把返回值类型空出来,应该写void表示无返回值类型。 * * 方法调用:(void修饰符方法调用) * 只能单独调用 */ public class MethodDemo { public static void main(String[] args) { //单独调用 printHelloWorld(); //输出调用 //System.out.println(printHelloWorld()); //赋值调用 //void v = printHelloWorld(); } /* * 在控制台输出10次HelloWorld * * 两个明确: * 返回值类型:void * 参数列表:没有参数 */ public static void printHelloWorld(){ for(int i=0;i<10;i++){ System.out.println("HelloWorld"); } } }
09.方法练习之打印1~n之间的数
package com.bird_02; /* * 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值 */ public class MethodTest { public static void main(String[] args) { //调用方法 printNumber(10); } /* * 写一个方法,传递一个整数(大于1),在控制台打印1到该数据的值 * * 两个明确: * 返回值类型:void * 参数列表:int n */ public static void printNumber(int n){ for(int i=1;i<=n;i++){ System.out.print(i+" "); } } }
10.方法练习之打印所有的水仙花数
package com.bird_02; /* * 写一个方法,使用打印所有水仙花数在控制台 */ public class MethodTest1 { public static void main(String[] args) { //调用 printFlower(); } /* * 写一个方法,使用打印所有水仙花数在控制台 * * 两个明确: * 返回值类型:void * 参数列表:没有参数 */ public static void printFlower(){ for(int i=100;i<1000;i++){ int ge = i%10; int shi = i/10%10; int bai = i/100%10; if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==i){ System.out.println(i); } } } }
11.方法重载的概述和基本使用
package com.bird_03; /* * 方法重载:在同一个类中,出现了方法名相同的情况 * 方法重载特点: * 方法名相同,参数列表不同。与返回值无关 * 参数列表不同: * 参数的个数不同 * 参数对应的类型不同 * * 注意: * 在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法 */ public class MethodDemo { public static void main(String[] args) { // 定义变量 int a = 10; int b = 20; // 求和方法 int ruselt = sum(a, b); System.out.println("ruselt:" + ruselt); // 定义变量 int x = 10; int y = 20; int z = 30; // 求和方法 int ruselt2 = sum(x, y, z); System.out.println("ruselt2:" + ruselt2); } // 不能出现方法名相同,参数类型相同的情况 // public static int sum(int x,int y){ // // } // 求三个数据的和 public static int sum(int a, int b, int c) { return a + b + c; } // 求两个数据的和 public static int sum(int a, int b) { return a + b; } }
12.方法重载练习之比较两个数据是否相等
package com.itheima_03; /* * 比较两个数据是否相等。参数类型分别为两个byte类型,两个short类型,两个int类型,两个long类型,并在main方法中进行测试 */ public class MethodTest { public static void main(String[] args) { //System.out.println(compare(10, 20)); //System.out.println(compare((byte)10, (byte)20)); //System.out.println(compare((short)10, (short)20)); System.out.println(compare(10L, 20L)); } //byte public static boolean compare(byte a,byte b) { System.out.println("byte"); return a == b; } //short public static boolean compare(short a,short b) { System.out.println("short"); return a == b; } //int public static boolean compare(int a,int b) { System.out.println("int"); return a == b; } //long public static boolean compare(long a,long b) { System.out.println("long"); return a == b; } }
13.方法的形式参数是基本类型
package com.bird_04; /* * 方法的参数如果是基本数据类型:形式参数的改变不影响实际参数。 * * 形式参数:用于接收实际参数的变量 * 实际参数:实际参与运算的变量 */ public class ArgsDemo { public static void main(String[] args) { int a = 10; int b = 20; System.out.println("a:"+a+",b:"+b);//a:10,b:20 change(a,b); System.out.println("a:"+a+",b:"+b);//??? a:10,b:20 } public static void change(int a,int b) {//a=10,b=20 System.out.println("a:"+a+",b:"+b);//a:10,b:20 a = b;//a=20 b = a + b;//b=40 System.out.println("a:"+a+",b:"+b);//a:20,b:40 } }
14.方法的形式参数是基本类型图解
15.方法的形式参数是引用类型
package com.bird_04; /* * 如果参数是引用数据类型: * 形式参数的改变直接影响实际参数 */ public class ArgsDemo2 { public static void main(String[] args) { int[] arr = {1,2,3,4,5}; for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } change(arr); for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } } public static void change(int[] arr) { for(int x=0; x<arr.length; x++) { if(arr[x]%2==0) { arr[x]*=2; } } } }
16.方法的形式参数是引用类型图解
17.方法练习之数组遍历
package com.bird_05; /* * 把遍历数组改进为方法实现,并调用方法 */ public class MethodTest { public static void main(String[] args) { // 声明数组 int[] arr = { 11, 22, 33, 44, 55 }; // 调用方法 printArray(arr); } /* * 两个明确: 返回值类型:void 参数列表:int[] arr */ public static void printArray(int[] arr) { System.out.print("["); for (int i = 0; i < arr.length; i++) { if (i == arr.length - 1) { System.out.print(i + "]"); } else { System.out.print(i+","); } } } }
18.方法练习之获取数组最值
package com.bird_05; /* * 把获取数组最值用方法实现,并调用 */ public class MethodTest2 { public static void main(String[] args) { //定义数组 int[] arr = {22,88,61,72,10}; //调用方法 int max = getMax(arr); System.out.println("数组最大数max="+max); } /* * 两个明确: * 返回值类型:int * 参数列表:int[] arr */ public static int getMax(int[] arr){ //定义参照数 int max = arr[0]; //循环比较 for(int i=1;i<arr.length;i++){ if(arr[i]>max){ max = arr[i]; } } return max; } }
19.方法练习之数组元素求和
package com.bird_05; /* * 写一个方法,用于对数组进行求和,并调用方法。 */ public class MethodTest3 { public static void main(String[] args) { //定义数组 int[] arr = {1,2,3,4,5}; //调用方法 int sum = sum(arr); System.out.println("数组的总和是"+sum); } /* * 两个明确: * 返回值类型:int * 参数列表:int[] arr */ public static int sum(int[] arr){ //定义求和参数 int sum = 0; for (int i = 0; i < arr.length; i++) { sum+=arr[i]; } return sum; } }