方法的定义、方法案例、方法在内存中的调用流程、方法参数的传递机制、实践案例

一、方法的定义
1、完整格式:修饰符  返回值类型  方法名(形参列表){
    方法体代码(需要执行的功能代码)
    return返回值;
}
示例:public static int add (int a,int b){
    int c = a + b;
    return c;
}
调用方法:方法名(形参);如:add(a:1,b:2);)
分为赋值调用、输出调用、直接调用。返回值为空的只能直接调用。
注意:
方法写好之后,调用它才能跑起来。
方法声明了具体的返回值类型,内部return返回值必须与其对应。
形参列表可以有多个或没有,形参之间用“,”隔开,且不能给初始值
方法不需要返回结果,返回值类型必须声明成void(无返回值),此时方法内部不可以使用return返回数据。
方法如果没有参数,或返回值类型声明为void可以称为无参数,无返回值的方法,以此类推。
2、方法的常见问题
方法的编写顺序无所谓
方法与方法之间是平级关系,不能嵌套。
方法返回值类型为void,则方法内部不能使用return返回数据,如果返回值写了具体类型,则方法中必须书写对应的return返回值类型。
return语句下面不能再编写代码,因为永远执行不到属于无效代码。
方法不调用则不执行,调用时必须严格匹配形参。
有返回值的方法调用时可以选择定义变量接收结果,或者直接输出调用,甚至直接调用;无返回值方法的调用只能直接调用一次。
二、方法案例
1、最大值
import java.util.Scanner;
public class text {
    public static void main(String[] args) {
        int[] A = new int[3];
        System.out.println(max(A));
    }
    public static int max(int[] arr){
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < arr.length; i++) {
            arr[i]=sc.nextInt();
        }
        int max = arr[0];
        for (int i = 0; i < arr.length;i++) {
            if (max<arr[i]) {
             max=arr[i];
            }
        }
        return max;
    }
}
2、奇偶性
import java.util.Scanner;
public class text {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要判断的数,该数必须是正整数");
        int n = sc.nextInt();
        check(n);
    }
   public static void check(int n){
        if (n%2==0){
            System.out.println("该数为偶数");
        }else {
            System.out.println("该数为奇数");
        }
   }
}
3、1--n的和
import java.util.Scanner;
public class text {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入n的值");
        int n = sc.nextInt();
        System.out.println("1--n的和为:"+sum(n));
    }
   public static int sum(int n){
        int sum = 0;
       for (int i = 1; i <= n; i++) {
           sum += i;
       }
        return sum;
   }
}
三、方法在内存中的调用流程
方法未被调用时,在方法区以.class文件存储;被调用时,在栈内存运行。
四、方法参数的传递机制
形参:定义方法时定义的变量
实参:方法内部定义的变量
基本类型参数传递机制:值(数据值)传递,传递的是实参存储的值,调用方法时实参会拷贝一份给所调用的方法进行使用。
引用类型参数传递机制:值(地址值)传递,传递的是引用类型参数的地址,引用类型参数会在堆内存中存储一旦修改,再次访问时就是修改后的值。
五、案例
1、打印数组内容:
public class text {
    public static void main(String[] args) {
        int[] arr = {12,24,15,69};
        printArr(arr);
        int[] arr1 = {};
        int[] arr2 = null;
        System.out.println();
        printArr(arr1);
        System.out.println();
        printArr(arr2);
    }
   public static void printArr (int[] arr){
        System.out.print("该数组内容为:[");
        if(arr!=null&&arr.length>0) {
            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(i == arr.length - 1 ? arr[i] : arr[i] + ",");
            }
        }
        System.out.print("]");
   }
}
2、查询数字在数组中的索引(无则输出-1):
import java.util.Scanner;
public class text {
    public static void main(String[] args) {
        Scanner SC = new Scanner(System.in);
        int[] arr = {12,23,45,65};
        int num = SC.nextInt();
        int index = seach(arr,num);
        System.out.println(index==-1?"查无此元素"+index:"其索引是:"+index);
    }
    public static int seach(int[] arr,int num){
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]==num){
             return i;
            }
        }return -1;
    }
}
3、判断数组是否一致:
public class text {
    public static void main(String[] args) {
        int[] arr1 ={1,1,3};
        int[] arr2 ={1,1,3};
        System.out.println("两个数组是否一致:"+checkArray(arr1,arr2));
    }
    public static boolean checkArray(int[] arr1,int[] arr2){
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i]!=arr2[i]&&arr1.length==arr2.length){//此处必须用不等于判断,否则有歧义。
                return false;
            }
        }
        return true;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值