一、方法是什么
方法是一种语法结构,它可以把一段代码封装成一个功能, 以方便调用
二、实例
package com.hello.method; public class Method { public static void main(String[] args) { /* 一、方法的定义 修饰符 返回值类型 方法名(形参列表){ 方法体代码; return 返回值; } 二、方法的注意事项 1、如果方法不需要返回结果,则申明返回值类型为void(无返回值);方法不需要参数,则形参列表可以不写 2、方法没有申明返回值类型,内部不能使用return返回数据 三、方法的常见问题 1、方法的编写顺序无所谓 2、方法与方法之间是平级关系,不能嵌套定义——即public里面不能有public方法 3、方法的返回值类型为void,方法内则不能使用return返回数据。 public static void main(String[] args) { //像这种返回值类型为void的,里面就不能写return ] 如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应值。 public static int sum(int a,int b){ //像这种返回值写了具体类型,比如int,方法体里必须要有return return 返回值; System.out.print("hello");//return语句下面,不能编写代码,因为永远执行不到,属于无效的代码。 } 4、有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用 ,甚至直接调用。 无返回值方法的调用只能直接调用一下。 5、方法不调用就不执行,调用时必须严格匹配方法的参数情况 四、方法重载的识别技巧 1、只要是同一个类中,方法名称相同、形参列表不同,那么他们就是重载的方法,其他都不管! 2、形参列表不同指的是:形参的个数、类型、顺序不同,不关心形参的名称 */ int Dsum = sum(3,6);//定义变量接收结果 System.out.println("定义变量接收结果:"+Dsum); System.out.println(sum(1, 3));//直接输出调用 sum(4,5);//直接调用 print();//无返回值方法的调用只能直接调用 int Esum=sumn(100);//调用sumn方法,计算1-100的和 System.out.println("1-100的和为:"+Esum); check(100);//调用check方法,判断奇偶数 int [] ages = {14,16,17,20}; int max = getArrayMaxData(ages);//调用最大值方法 System.out.println("最大值是:"+max); //这里要注意方法参数传递机制(基本类型的参数传递),最终输出结果为10、20、10 int a = 10;//定义变量a //1、调用change方法,将a存储的值10传递给方法中的形参变量a,输出打印结果为10 //2、方法内部定义变量a=20,继续打印结果为20 change(a); //3、此时方法已执行完,并跳出方法,执行方法外的打印,所以这里的a就当是10,故最后打印结果为10 System.out.println(a); //引用类型的参数传递,最终输出结果为20、222、222 int[] arr = {10,20,30}; //1、调用changearr方法,将arr存储的地址值传递给方法中的变量arr,输出打印结果为20 //2、方法内部定义变量arr[1]=222,继续打印结果为222,此时要注意,因为引用类型的参数存储的是地址,所以这里在方法内部 //定义 changearr(arr); //1、调用 System.out.println(arr[1]);//222 //调用比较数组的方法 int[] arr1 = {10,120,30}; int[] arr2 = {10,20,30}; System.out.println(compare(arr1,arr2)); } //有返回值类型的方法 public static int sum(int a,int b){ int count; count = a+b; return count; } //无返回值类型的方法 public static void print(){ System.out.println("helloword"); } //需求1:定义一个方法,方法中计算出1-n的和并返回 //定义方法重点关注:1、方法是否需要申明返回值类型;2、方法是否需要定义形参列表 public static int sumn(int n){ int sum=0;//声明一个变量接收计算出来的和,初始值为0 for (int i = 1; i < n; i++) { sum +=i; }; return sum; } //判断整数是奇数还是偶数 //需求2:拿一个整数,然后调用方法,把整数交给方法,在方法中输出该整数为奇数还是偶数 public static void check(int number){ if(number%2 == 0){ System.out.println(number+"是偶数"); } else { System.out.println(number+"是奇数"); } } //数组求最值改方法实现 //需求3:把找出数组的最大值案例,改造成方法,可以支持返回任意整形数组的最大值数据 public static int getArrayMaxData(int [] arr){ int max=arr[0]; for (int i = 0; i < arr.length; i++) { if(arr[i]>max){ max=arr[i]; } } return max; } //基本类型的参数值传递:传输的是存储的数据值 public static void change(int a){ System.out.println(a);//10 a = 20; System.out.println(a);//20 } //引用类型的参数值传递:传输的是存储的地址值 public static void changearr(int[] arr){ System.out.println(arr[1]);//20 arr[1] = 222; System.out.println(arr[1]);//222 } //需求4:比较2个数组是否一样,如果两个数组的类型,元素个数,元素顺序和内容是一样的我们就认为这2个数组是一模一样的。 //请使用方法完成,能够判断任意两个整形数组是否一样,并返回true或false /* 1、定义一个方法: 参数:接收2个整型数组, 返回值类型:布尔类型 * */ public static boolean compare(int[] arr1,int[]arr2){ //2、判断2个数组的内容是一样的 if(arr1.length == arr2.length){ for(int i=0;i<arr1.length;i++){ if(arr1[i] != arr2[i]){ return false; } } return true;//是一样的 }else { return false; } } }