import java.util.Random; import java.util.Scanner; //方法:完成特定功能的代码段,方法的本质上代表一段代码结构,该结构完成一个特定功能 //作用:可以实现对某一段重复代码的封装,从而降低代码的冗余 /* *方法即函数,函数即方法,也是功能 * 函数定义语法: * public static 函数的返回值类型 函数名(参数列表){ * 函数体 * } */ //* 函数分类 //* 无参无返回值值函数(没有参数也没有返回值):一般用于固定操作的代码封装(一般不用) //* 有参无返回值(有参没有返回值):一般用户数据打印输出操作 //* 无参有返回值(没有参数有返回值):一般用于不需要外界数据但是需要内部产生的结果 //* 有参有返回值:经常使用 //函数调用:函数名(参数列表); 注意:main函数调用函数中的代码才能正常执行,否则不会执行 //形参和实参 //形参:形式参数,函数定义过程中设置的参数 //实参:实际参数,函数调用过程中设置的参数 /*注意:: * 1.形参没有实际意义,只是一个标志,代表未来会接收一个指定类型的数据,但是数据具体是多少由函数调用时传入的实参决定的 * 2.实参像形参数据的传递为值(数据)拷贝的过程,因此函数内部对基本数据类型数据的更改并不会影响函数外部传递数据的 变量 * 3.引用类型的数据在函数调用时,实参向形参的数据传递为地址拷贝(浅拷贝),此时函数内部通过形参更改数据,等价于直接更改实参数据 */ /* *return是函数定义过程中的关键字,代表函数调用结束,用来返回函数调用结束后对应的返回值,注意:return后面不能出现未执行的代码,否则return后面的代码不会执行 */ /*局部变量和全局变量 * 局部变量:定义在函数内部的变量 * 全局变量:定义在函数外部的变量 * 1.局部变量从变量定义开始到函数调用结束,函数调用结束局部变量内存会被自动回收;全局变量从定义开始,到程序运行结束,之后变量内存被自动回收。 * 2.全局变量可以被任意函数使用,但是局部变量只能被当前函数使用。 * 3.局部变量可以有效保证数据不会被污染,但是全局变量有可能会造成数据污染,因此开发中,函数之间的通信尽量使用局部变量,如果局部变量实在无法解决,才会考虑全局变量 */ public class Main { public static void main(String[] args) { System.out.println("sum方法执行之前"); sum(); System.out.println("sum方法执行之后"); sum(); System.out.println("sum方法再次执行之后"); outHello(); System.out.print("num为:"); printResult(10); System.out.println("生成的数组为:"); int []array1=createArray(10,20,30); outArray(array1); getMax(array1); } public static void sum() { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个整数,将为您计算1到这个数的和:"); int num = scanner.nextInt(); int sum = 0; for(int i = 1; i <= num; i++) { sum += i; } System.out.println("1到" + num + "的和是:" + sum); } //无参无返回值 public static void outHello(){ for (int i = 0; i < 10; i++) { System.out.println("欢迎来到我的世界!!!"); } } //有参无返回值 public static void printResult(int num){ num++; System.out.println(num); } //生成一个数组 public static int[] createArray(int n,int min,int max){ int []array=new int[n]; for (int i = 0; i < n; i++) { array[i]=getRandom(min,max); } //创建一个新的数组 return array; } //...params:动态参数,适用于函数定义过程中一次性需要定义多个同类型变量,注意:动态参数最终会将函数调用过程中对应的实参数据,以数组的结构传入到函数内部。动态参数可以和固定参数同时出现,但是必须在固定参数右侧。 /*public static int[] createArray(int ...params){ int []array=new int[params[0]]; for (int i = 0; i < params[0]; i++) { array[i]=getRandom(params[1],params[2]); } return array; }*/ //定义一个函数,完成数组内容输出 public static void outArray(int []array){ for (int i = 0; i < array.length;i++){ System.out.print(array[i]+" "); } System.out.println(); } //定义一个函数完成对整形数组的排序 public static void sort(int []array){ for (int i = 0; i < array.length-1; i++) { for (int j = 0; j < array.length-1-i; j++) { if(array[j]>array[j+1]){ int temp=array[i]; array[i]=array[j+1]; array[j+1]=temp; } } } } //定义一个函数完成对字符数组数据的排序 /* * 方法重载:在同一个作用区间内出现多个同名方法,此过程被称为方法重载。 * 注意:方法重载只和方法的参数列表有关,跟方法的返回值无关。开发过程中,只需要保证方法的参数类型不同,或者方法的参数数量不同即可实现方法重载。*/ public static void sort(char []array){ for (int i = 0; i < array.length-1; i++) { for (int j = 0; j < array.length-1-i; j++) { if(array[j]>array[j+1]){ char temp=array[i]; array[i]=array[j+1]; array[j+1]=temp; } } } } //定义一个生成随机值的函数 public static int getRandom(int min,int max){ Random random=new Random(); return random.nextInt(max-min+1)+min; } //定义一个函数求任意数组中的最大值 public static int getMax(int []array){ int max=array[0]; for (int i = 1; i < array.length; i++) { if (max<array[i]){ max=array[i]; } } System.out.println("数组中的最大值为:"+max); System.out.print("最大值下标为:"); for (int i = 0; i < array.length; i++) { if(max==array[i]){ System.out.print(i+" "); } } return max; } //拓展: //创建一个新的数组(将数组array中的数据复制到新数组newArray中) //int []newArray=arrary.clone(); }
Java全栈基础汇总5(方法)
于 2024-07-17 17:24:47 首次发布