目录
方法基础概念
方法的格式:
案例:最简单方法的定义
案例:带参数的方法调用
案例:求圆的面积
带有返回值的方法:
方法注意点
方法的重载:
编辑
案例:数组的遍历:
案例:求数组最大值:
案例:判断数组中数是否存在:
案例:复制数组:
方法的内存:
方法基础概念
方法是程序中最小的执行单元。
方法的作用:
调用打包好的方法,更方便间接。提高复用性,可维护性。
方法的格式:
案例:最简单方法的定义
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;
}
}
方法的内存:
先进后出,执行完毕出站。
存的不是真实的数据,而是地址值的时候,才是引用数据类型。
传递基本数据类型时,传递的是真实的数据,形参的改变,不影响实际参数的值。