JAVA基础篇——JAVA方法

五、 JAVA方法

1. 概述

概念: 一种语法结构,一段代码一个功能

作用: 便于重复调用

格式:

修饰符 返回值类型 方法名 (形参列表) {

​ 方法体代码;

​ return 返回值;

}

// 求两数和的方法
public static int sum (int a, int b) {
    int c = a + b;
    return c;
}

注意事项:

  • 返回类型 return同
  • 形参列表[0, n],多个形参逗号割

好处:

  • 提高代码的复用性
  • 让程序逻辑清晰

2. 方法定义形式

方法定义时根据实际需求,设计合理的方法解决问题

注意事项:

  • 若不需要返回值,void,不需要return
  • 若不需要接收数据,不需要定义形参

方法使用时的常见问题:

  1. 方法在类中的位置放前放后无所谓,但一个方法不能定义在另一个方法里面。
  2. 方法的返回值类型写void(无返回申明)时,方法内不能使用return返回数据;如果方法的返回值类型写了具体类型,方法内部则必须使用return返回对应类型的数据
  3. return语句的下面,不能编写代码,属于无效的代码,执行不到这儿。
  4. 方法不调用就不会执行, 调用方法时,传给方法的数据,必须严格匹配方法的参数情况。
  5. 调用有返回值的方法,有3 种方式: 1、可以定义变量接收结果 ;2、或者直接输出调用;3、甚至直接调用
  6. 调用无返回值的方法,只有1种方式: 1、只能直接调用

3. 方法的案例

设计方法要考虑三个方面:

  • 是否需要接收参数
  • 是否需要返回数据
  • 方法要处理什么样的业务
public class SunDemo {
    // 求1-n的和
    public static void main(String[] args) {
        int rs = sum(5);
        System.out.println(rs);
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println(add(arr));
    }
    public static int sum (int n) {
        int sumNum = 0;
        for (int i = 1; i <= n; i++) {
            sumNum += i;
        }
        return sumNum;
    }
    public static int add (int[] num) {
        int sumNum = 0;
        for (int i = 0; i < num.length; i++) {
            sumNum += num[i];
        }
        return sumNum;
    }
}

4. 方法在计算机中的执行原理

方法被调用的时候,是进入到栈内存中运行的——先进后出:可以保证某个方法被调用执行后,回到main方法,并且能在方法执行完之后及时清理。

5. 方法参数传递**

机制:值传递——实参给方法的形参传递时,传输的时实参变量中存储的值的副本

基本类型的参数传递:副本

引用类型的参数传递:副本是地址值

6. 参数传递的案例

案例1:按格式输出数组的内容

public class MethodTest1 {
    public static void main(String[] args) {
        // 按格式要求输出数组内容
        int[] arr = {10, 20, 30};
        printFormat(arr);
        int[] arr1 = {};
        System.out.println(arr1.length);
        printFormat(arr1);
        int[] arr2 = null;
//        System.out.println(arr2.length);  // 报错

    }
    public static void printFormat (int[] arr) {
        if (arr == null) {
            System.out.println(arr);
            return;
        }
        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(i == arr.length - 1? arr[i]: arr[i] + ", ");
        }
        System.out.print("]");
    }
}

案例2:判断两个int数组是否相同

public class MethodTested {
    public static void main(String[] args) {
        // 判断两个int数组是否一样
        int[] arr1 = {1, 2, 3, 4};
        int[] arr2 = {1, 2, 3};
        boolean rs = equals(arr1, arr2);
        System.out.println(rs);
    }
    public static boolean equals (int[] arr1, int[] arr2) {
        // 1. 判断a和b是否都为null
        if (arr1 == null && arr2 == null) {
            return true;
        }
        // 2. 其中一个null,另一个不是null
        if (arr1 == null || arr2 == null) {
            return false;
        }
        // 3. 判断长度是否相同
        if (arr1.length != arr2.length) {
            return false;
        }
        // 4. 比较内容
        for (int i = 0; i < arr1.length; i++) {
            if (arr1[i] != arr2[i]) {
                return false;
            }
        }
        return true;
    }
}

7. 方法重载

重载概念: 一个类中,多个方法名称相同,但是形参列表不同,这些方法就是方法重载。——形参的个数、类型、顺序不同

public class MethodOverLoadDemo1 {
    public static void main(String[] args) {
        test();
        test(2);
    }
    // 只与名称,形参列表相关
    public static void test () {
        System.out.println("test1");
    }
    public static void test (int a) {
        System.out.println("test2");
    }
    // 形参个数、类型、顺序
    void test (double a) {

    }
    int test (double a, int b) {
        return 1;
    }
    void test (int a, double b) {

    }
}

重载应用场景:

为一类业务提供多种解决方案

8. 在方法中单独使用return关键字

无返回值的方法中单独使用可以立即跳出并结束当前方法的执行

public class MethodOverLoad {
    public static void main(String[] args) {
        chu(2, 0);
    }
    public static void chu(int a, int b) {
        if (b == 0)  {
            System.out.println("除数为0");
            return;
        }
        int c = a / b;
        System.out.println(c);
    }
}

9. 总结

JAVA方法总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值