目录
方法基础概念
方法的格式:
案例:最简单方法的定义
案例:带参数的方法调用
案例:求圆的面积
带有返回值的方法:
方法注意点
方法的重载:
编辑
案例:数组的遍历:
案例:求数组最大值:
案例:判断数组中数是否存在:
案例:复制数组:
方法的内存:
方法基础概念
方法是程序中最小的执行单元。
方法的作用:
调用打包好的方法,更方便间接。提高复用性,可维护性。
方法的格式:
案例:最简单方法的定义
package textfangfa;
//利用最简单方式定义方法
public class text1 {public static void main(String[] args) {//调用方法playGame();}public static void playGame(){System.out.println("永结无间");System.out.println("光遇");System.out.println("元神");System.out.println("饥荒");}
}
看到方法就进入方法,然后方法执行完毕回到执行处继续执行。
案例:带参数的方法调用
package textfangfa;
//带参数方法调用
public class text2 {public static void main(String[] args) {getSum(12,22);}public static void getSum(int a, int b ){int sum = a + b;System.out.println(sum);}
}
要注意形参实参。
案例:求圆的面积
package textfangfa;
//求圆的面积
public class text2 {public static void main(String[] args) {getSum(1.5);}public static void getSum(double r){double result=r*r*3.14;System.out.println(result);}
}
带有返回值的方法:
package textfangfa;
//带有返回值的方法
public class text3 {public static void main(String[] args) {//直接调用getData(1,2,3);//赋值调用int count= getData(4,5,6);System.out.println(count);//输出调用System.out.println( getData(7,8,9));}public static int getData(int n, int b, int c){int sum=n+b+c;return sum;}
}
方法注意点
方法的重载:
Java虚拟机会通过参数的不同来区分同名的方法。顺序不同可以构成重载,但是不建议。
方法重载的好处:定义方法的时候不用起那么多单词,用方法的时候也不用那么麻烦。
案例:数组的遍历:
package textfangfa;
//数组的遍历
public class text4 {public static void main(String[] args) {int[]arr={1,2,3,4,5};printarr(arr);}public static void printarr(int[]arr){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 textfangfa;
//设计一个方法,求数组最大值
public class text5 {public static void main(String[] args) {int[]arr={12,222,37,4,5};int max = getMax(arr);System.out.println(max);}public static int getMax(int[]arr){int max = arr[0];for(int i=0;i<arr.length;i++){if(arr[i]>max){max=arr[i];}}return max;}
}
案例:判断数组中数是否存在:
package textfangfa;import java.util.Scanner;//数组中是否存在某数
public class text6 {public static void main(String[] args) {int[]a={11,12,45,23,45,7,67,87,98,987,35,67,9,1,2,3,4,5,6,7,8,9};Scanner sc=new Scanner(System.in);System.out.print("请输入你要判断的数字:");int x=sc.nextInt();System.out.println(contains(a,x));}public static boolean contains(int[] a, int x) {for (int i = 0; i < a.length; i++) {if (a[i] == x) {return true;}}return false;}
}
return和break区别:
案例:复制数组:
package textfangfa;
/*定义一个方法copyOfRange(int[] arr,int from, int to)
将数组arr中从索引from(包含from)开始。
到索引to结束(不包含to)的元素复制到新数组中将新数组返回*/
public class text7 {public static void main(String[] args) {int[]a={1,2,3,4,5,6,7,8,9};int[]b=copyOfRange(a,3,7);for (int i = 0; i < b.length; i++) {System.out.print(b[i]+" ");}}public static int[] copyOfRange(int[]a, int from, int to) {int[]newarr=new int[to-from];int index=0;for (int i=from;i<to;i++){newarr[index]=a[i];index++;}return newarr;}
}
方法的内存:
先进后出,执行完毕出站。
存的不是真实的数据,而是地址值的时候,才是引用数据类型。
传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。