Java11 方法 方法重载 return 关键字
定义方法的完整格式
public class MethodsDemo1 { public static void main(String[] args) { //目标:学习方法的完整定义格式,并理解其调用和执行流程 int rs= add(199,22); System.out.println(rs); } //求和方法 public static int add(int a, int b){ int c=a+b; return c; } }
方法的其他写法
public class MethodsDemo2 { public static void main(String[] args) { print("hello",3); } public static void print(String a,int b){ for (int i = 0; i <b ; i++) { System.out.println(a); } } }
public class MethodsDemo4 { public static void main(String[] args) { //直接调用 让方法跑一下,但是方法返回的结果它不要了 System.out.println(sum(1, 2)); System.out.println("______"); //无返回值的方法只能调用一下 print(); } //求和方法 public static int sum(int a,int b){ int c=a+b; return c; } //有具体的返回值 则必须有返回值 也必须有返回值的类型 也必须一致 public static void print(){ System.out.println("helloworld"); } }
方法的几个小案例
public class FuncDemo { public static void main(String[] args) { System.out.println(addNum(10)); System.out.println(result(2)); int [] arr={1,2,3,423,56,6}; System.out.println(arrMax(arr)); } //求和方法 public static int addNum(int n) { int c = 0; for (int i = 1; i <= n; i++) { c += i; } return c; } //判断一个数是整数还是奇数 public static String result(int a) { String r = ""; if (a % 2 == 0) { r = "偶数"; } else if (a % 2 != 0) { r = "奇数"; } return r; } //找出数组中的最大值 求最值方法 public static int arrMax(int[] a) { // int num,max; // if(a.length>=2){ // //冒泡排序求最大值 // for (int i = 0; i < a.length; i++) { // for (int j = 0; j < a.length - i - 1; j++) { // if (a[j] > a[j + 1]) { // num = a[j + 1]; // a[j + 1] = a[j]; // a[j] = num; // } // } // } // } // int len=a.length-1; // max=a[len]; int max=a[0]; for (int i = 0; i <a.length ; i++) { if(max<a[i]){ max=a[i]; } } return max; } }
public class FuncDemo1 { public static void main(String[] args) { // 目标 理解方法的内存运行机制 /* 先将main方法推入到栈方法中执行,之后将方法去的study方法在推入到栈内存中 在将方法去内的eat 方法推入到 栈内存中 执行玩eat方法 将 eat 方法冲栈内存中 推出去 在将方法去内的sleep方法 推如到栈内存中 ,在执行sleep方法,执行完后 在将sleep方法 推出栈内存 执行完后 在将study方法推出 栈内存 执行完后 在将main方法推出 栈内存 程序执行完毕 */ study(); } public static void study(){ eat(); System.out.println("开始学习"); sleep(); } public static void sleep(){ System.out.println("开始睡觉"); } public static void eat(){ System.out.println("开始吃饭"); } }
Java方法的基本类型的参数传递机制
public class FuncDemo2 { public static void main(String[] args) { //目标:理解Java的基本类型的参数传递:值传递 int a=10; change(a); System.out.println(a);//10 } public static void change(int a){ System.out.println(a);//10 a=20; System.out.println(a);//20 } }
Java 方法的引用类型的值传递
public class FuncDemo3 { public static void main(String[] args) { //Java 方法的引用类型的参数传递 int [] arr={1,2,34,45,6}; changeArray(arr);//2 System.out.println(arr[1]);//333 } public static void changeArray(int [] a){ System.out.println(a[1]);//2 a[1]=333; System.out.println(a[1]);//333 } }
方法实现的几个小需求
public class FuncDemo3 { public static void main(String[] args) { //Java 方法的引用类型的参数传递 int[] arr = {1, 2, 34, 45, 6}; int[] arr1={1,2,4,5}; changeArray(arr);//2 System.out.println(arr[1]);//333 dealArray(arr); System.out.println(findIndex(arr, 3)); System.out.println(findIndex(arr, 1)); System.out.println("----------------"); System.out.println(compare(arr, arr)); System.out.println(compare(arr, arr1)); } public static void changeArray(int[] a) { System.out.println(a[1]);//2 a[1] = 333; System.out.println(a[1]);//333 } //需求 答应出数组类型 [1,2,4,56,6] 这种类型 print 打印 不换行 public static void dealArray(int[] args) { System.out.print("["); if (args.length > 0 && args != null) { for (int i = 0; i < args.length; i++) { if (i == args.length - 1) { System.out.print(args[i]); } else { System.out.print(args[i] + ","); } } } System.out.println("]"); } //需求 查找数组中指定元素值的位置 找到返回指定索引 没找到返回-1 public static int findIndex(int[] arr,int a){ int index=-1; boolean result=false; for (int i = 0; i < arr.length; i++) { if(a==arr[i]){ index=i; result=true; break; } } return index=result?index:-1; } //3 需求 比较两个整型数组的内容是否一样 public static boolean compare(int [] a, int [] b){ if(a.length==b.length){ for (int i = 0; i < a.length; i++) { for (int j = 0; j < b.length; j++) { if(a[i]!=b[i]){ return false; } } } return true; }else{ return false; } } }
方法重载
public class FuncDemo5 { public static void main(String[] args) { //目标:识别方法重载的形式,并理解其调用刘晨给,最后需要知道使用方法重载的好处 fire();//开火 fire("黑洞");//向黑洞发送 fire("黑洞",5);//向黑洞发送5枚 } public static void fire(){ System.out.println("开火"); } public static void fire(String location){ System.out.println("向"+location+"发送"); } public static void fire(String location,int num){ System.out.println("向"+location+"发送"+num+"枚"); } }
return 关键字