1. 方法
1.1 什么是方法
package com.angus.method.whatIsTheMethod_1;public class note {public static void main(String[] args) {//什么是方法//方法是程序当中最小的执行单元//调用方法和使用数组很类似//方法->方法名//数组->数组名->地址值//什么时候用到方法//重复的代码,具有独立功能的代码可以抽取到方法当中//方法有什么好处//可以提高代码的复用性//可以提高代码的可维护性System.out.println("^^");}
}
1.2 方法的格式
package com.angus.method.theFormatOfTheMethod_2;public class note {public static void main(String[] args) {//关于方法的格式只要学习两点//如何打包//打包好后如何调用//方法定义//把一些代码打包在一起,该过程称为方法定义//方法调用//方法定义后并不是直接运行的,需要手动调用才能执行,//该过程称为方法调用//方法的定义格式//分为三种解析//最后一种可操作性最高,也是方法最完整的定义格式//第一种//最简单的方法定义和调用//方法定义//格式://public static Void 方法名(){// 方法体(就是打包起来的代码);//}//范例://public static Void playGame(){// 七个打印语句;//}//方法调用//格式://方法名();//范例://playGame();//注意:方法必须先定义后调用,否则程序将报错//看代码//看到方法进入方法//执行完毕后回到调用处//第二种//带参数的方法定义和调用//一个参数的定义和调用//public static void 方法名(参数){...}//public static void method(int number){...}//方法名(参数);//method();//method(变量);//多个参数//public static void 方法名(参数1,参数2,...){...}//public static void method(int number1,int number2,...){...}//方法名(参数1,参数2,...);//getSun(10,20);//getSun(变量1,变量2);//注意:方法调用时,参数的数量与类型必须与方法定义中//小括号里面的变量一一对应,否则程序将报错//形参和实参//形参://全称为形式参数,是指方法定义中的参数//实参://全称为实际参数,是指方法调用中的参数//注意:方法调用时,形参和实参必须一一对应,否则程序将报错//方法定义的小技巧//1.我要干啥? ->方法体//2.我干这件事情需要啥才能完成? ->形参//第三种//带返回值方法的定义和调用//方法的返回值其实就是方法运行的最终结果//如果在调用处要根据方法的结果,去编写另外一段代码逻辑//为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法//定义//格式://public static 返回值类型 方法名(参数){//方法体;//return 返回值;// }//范例://public static int getSum(int a, int b){// int c = a + b;// return c;// }//调用//直接调用: ->一般用于没有返回值类型的//方法名(实参);//赋值调用: ->最常用//整数类型 变量名 = 方法名(实参);//输出调用://System.out.println(方法名(实参));System.out.println("^^");}
}
package com.angus.method.theFormatOfTheMethod_2;public class demo1 {public static void main(String[] args) {//最简单的方法定义和调用格式playGame();System.out.println("^^");}public static void playGame(){System.out.println("afa");System.out.println("acaca");System.out.println("阿拉敖灿哦");}}
package com.angus.method.theFormatOfTheMethod_2;public class demo2 {public static void main(String[] args) {GFinfo();System.out.println("^^");}public static void GFinfo(){System.out.println("小美");System.out.println("1.63");System.out.println("萌妹子");}}
package com.angus.method.theFormatOfTheMethod_2;public class demo3 {public static void main(String[] args) {qiuHe();System.out.println("^^");}public static void qiuHe() {int a = 10;int b = 10;int sum = a + b;System.out.println(sum);}}
package com.angus.method.theFormatOfTheMethod_2;public class demo4 {public static void main(String[] args) {getSum(10,20);System.out.println("^^");}public static void getSum(int a, int b) {int sum = a + b;System.out.println(sum);}}
package com.angus.method.theFormatOfTheMethod_2;public class demo5 {public static void main(String[] args) {//目标:掌握带返回值方法的定义和调用格式//直接调用 ->一般不用于返回值的调用getSum(1,1,1);//赋值调用int sum =getSum(1,1,1);System.out.println(sum);//输出调用System.out.println(getSum(1,1,1));System.out.println("^^");}public static int getSum(int num1,int num2,int num3){int re = num1 + num2 + num3;return re;}}
package com.angus.method.theFormatOfTheMethod_2;public class demo6 {public static void main(String[] args) {//目标:掌握带返回值方法的定义和调用格式//计算全年的总营业额int sum1 = getSum(1,1,1);int sum2 = getSum(2,2,2);int sum3 = getSum(3,3,3);int sum4 = getSum(4,4,4);int sum = sum1 + sum2 + sum3 + sum4;System.out.println(sum);System.out.println("^^");}public static int getSum(int num1,int num2,int num3){int re = num1 + num2 + num3;return re;}}
package com.angus.method.theFormatOfTheMethod_2;public class test1 {public static void main(String[] args) {//需求:定义一个方法,求长方形的周长,将结果在方法中进行打印。c(1,1);System.out.println("^^");}//我要干甚么? 求长方形的周长//需要啥完成它? 长和宽public static void c(int a, int b) {int C = (a + b) * 2;System.out.println(C);}}
package com.angus.method.theFormatOfTheMethod_2;public class test2 {public static void main(String[] args) {//需求:定义一个方法,求圆的面积,将结果在方法中进行打印。//目标:根据不同的需求,选择定义无参的方法,还是带参数的方法 -> 带参getS(3);System.out.println("^^");}public static void getS(double r) {double S = r * r * 3.14;System.out.println(S);}}
package com.angus.method.theFormatOfTheMethod_2;public class test3 {public static void main(String[] args) {//目标:要能区分出什么时候使用带返回值的方法 ->要在调用处用到返回值的时候//需求:定义方法,比较两个长方形的面积double S1 = getArea(1,1);double S2 = getArea(2,2);if (S1 > S2){System.out.println("第一个面积大");;} else {System.out.println("第二个面积大");;}System.out.println("^^");}public static double getArea(double length,double width) {double area = length * width ;return area;}}
1.3 方法的重载
package com.angus.method.overloadingOfMethod_3;public class note {public static void main(String[] args) {// 方法的重载//// 在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能// 每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系//// 简单记:// 就是看是不是在同一个类中,方法名是不是相同,形参是不是不同,不看返回值// 形参不同有哪些不同:个数,类型,顺序(不建议用)System.out.println("^^");}
}
package com.angus.method.overloadingOfMethod_3;public class test1 {public static void main(String[] args) {long num1 = getNum(1);int num2 = getNum(2);if (num2 == num1) {System.out.println("相等");} else {System.out.println("不相等");}System.out.println("^^");}public static long getNum(long num) {return num;}public static int getNum(int num) {return num;}public static short getNum(short num) {return num;}public static byte getNum(byte num) {return num;}}
package com.angus.method.overloadingOfMethod_3;public class test2 {public static void main(String[] args) {com((byte)1,(byte)2);com((short)2,(short)3);com(3,4);com(56464646464464166L,6841864164164164189L);byte a = 1;byte b = 1;com(a,b);byte b1 = 5;byte b2 = 5;com(b1,b2);int c = 2;int d = 2;com(c,d);System.out.println("^^");}//方法重载的好处//1.一个单词就可以干很多事情//2.调用方法变得非常容易public static void com(byte b1,byte b2) {System.out.println("byte");System.out.println(b1 == b2);}public static void com(short s1,short s2) {System.out.println("short");System.out.println(s1 == s2);}public static void com(int i1,int i2) {System.out.println("int");System.out.println(i1 == i2);}public static void com(long n1,long n2) {System.out.println("long");System.out.println(n1 == n2);}}
package com.angus.method.overloadingOfMethod_3;public class test3 {public static void main(String[] args) {//需求:设计一个方法用于数组遍历,要求遍历的结果是在一行上的,例如:[1,2,3,4,5]int arr[] = {1,2,3,4,5};getArr(arr); //把数组名放进去,要记住方法名+数组名才可以调用System.out.println(); //只做换行处理,换行了下面的才不会接着System.out.println("^^");}public static void getArr(int arr[]){ // (int类型 数组名[]) ,要记住数据类型+变量名/数组名[],调用时变量直接写数值,数组写数组名,不绝对哈,这只是目前的领悟System.out.print("["); //->不换行,下面的才会接着for (int i = 0; i < arr.length; i++) {if ( i == arr.length - 1) {System.out.print(arr[i]);} else {System.out.print(arr[i] + ", ");}}System.out.print("]"); //->上一个不换行,自己才能接着}}
package com.angus.method.overloadingOfMethod_3;public class test4 {public static void main(String[] args) {//设计一个方法求数组的最大值,并将最大值值返回int arr[] = {1,5,6,7,2,4,6,9};int max = getMax(arr);System.out.println(max);System.out.println("^^");}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;}}
package com.angus.method.overloadingOfMethod_3;public class test5 {public static void main(String[] args) {//定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处int arr[] = {1,2,3,4,5,6,7,8,9};boolean pan = pan(arr,9);System.out.println(pan);System.out.println("^^");}//1.干啥 -> 定义一个方法判断数组中的某一个数是否存在,将结果返回给调用处//2.怎么干,需要啥 -> 数组,某一个数//3.返否 -> 返,因为判断public static boolean pan(int arr[], int num) {for (int i = 0; i < arr.length; i++) {if (arr[i] == num) {return true;}}return false;}}
//return结束方法并返回结果
//break结束循环或者switch
package com.angus.method.overloadingOfMethod_3;public class test6 {public static void main(String[] args) {//复制数组//需求: 定义一个方法copyOfRange(int[] arr,int from,int to)//功能: 将索引arr中从索引from(包含from)开始,//到索引to结束(不包含to)的元素复制到新数组中,//将新数组返回//老数组int arr[] = {1,2,3,4,5,6,7,8,9};//返回,又得定义一个新数组int newArr2[] = copyOfRange(arr,3,7);//遍历for (int i = 0; i < newArr2.length; i++) {System.out.print(newArr2[i] + " "); //下次注意,打印的是元素newArr2[i],不是索引i}System.out.println();System.out.println("^^");}public static int[] copyOfRange(int[] arr,int from,int to) {//index自增,伪造索引思想int index = 0;//新数组int newArr1[] = new int[to - from];for (int i = from; i < to; i++) { //遍历的话,不是谁固定遍历,而是只要有循环都可以遍历,所以数组赋值给数组的操作才能进行 -> test6_6演示//老数组复制给新数组newArr1[index] = arr[i];index++;}//返回return newArr1;}}
package com.angus.method.overloadingOfMethod_3;public class test6_6 {public static void main(String[] args) {int arr[] = {1,2,3};int brr[] = {4,5,6};for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);System.out.println(brr[i]);}System.out.println("^^");}
}
未完待续...