day05-java方法

1. 方法

1.1 方法概述

  1. 方法 : 具有特殊功能的代码集,提高代码复用率
  2. 方法先创建才能使用,方法定义
  3. 方法创建后要使用方法,必须手动调用执行, 方法调用

1.2 方法的定义和调用

  1. 定义

    public static void 方法名 () {
        
    }
    
    public static void isEvenNumber() {
        int a = 12;
        if (a % 2 == 0){
            System.out.println("是偶数");
        }
    }
    
  2. 调用

    方法名 ();
    
    public static void main(String[] args) {
        isEvenNumber(); // 调用方法
    }
    
  3. 方法调用过程

    main方法中进入,然后进入isEvenNumber()方法,执行完isEvenNumber()方法,返回main方法

  4. demo 获取两个数中最大值

    public static void getMax() {
        int a = 12;
        int b = 13;
        if (a > b) {
            System.out.println(a);
        } else {
            System.out.println(b);
        }
    }
    
    public static void main(String[] args) {
        getMax();
    }
    

1. 3 带参数方法的定义和调用

  1. 定义

    public static void 方法名 (数据类型 参数1, 数据类型 参数2···) {
        
    }
    

    NOTE:

    1. 参数数据类型 参数名不能少
    2. 多个参数用,隔开
  2. 调用

    方法名 (1/变量1,2/变量2···);
    

    NOTE:

    1. 方法调用时,参数的数据类型和个数要匹配
  3. demo

    public static void isEvenNumber (int num) {
        if (num % 2 == 0) {
            System.out.println(num + " 是偶数");
        } else {
            System.out.println(num + " 是奇数");
        }
    }
    
    public static void main(String[] args) {
        int a = 12;
        isEvenNumber(a); // 变量
        isEvenNumber(13); // 常量
    }
    
  4. 形参实参

    1. 形参 方法定义中的参数 由数据类型 变量名组成
    2. 实参 方法调用时使用的参数,通常是一个常量或某个变量
  5. demo2 两个数打印最值

    public static void getMax(int a, int b){ // a, b 形参
        if (a > b) {
            System.out.println(a);
        } else {
            System.out.println(b);
        }
    }
    
    public static void main(String[] args) {
        int a = 12;
        getMax(a,13); // a, 13 实参
    }
    

1.4 带返回值方法的定义与调用

  1. 定义

    public static 返回值数据类型 方法名 (数据类型 参数1, 数据类型 参数2···) {
        return 数值;
    }
    

    NOTE: return的数值 和 要求的返回值数据类型必须一致

  2. 调用 有变量接收返回值,否则方法返回值无意义

    数据类型  变量 = 方法名 (1/变量1,2/变量2···);
    

    NOTE: 变量的数据类型 和 方法返回的数据类型必须一致

  3. demo

    public static boolean isEvenNumber(int num) {
        if (num % 2 == 0){
            return true;
        } else {
            return false;
        }
    }
    
    public static void main(String[] args) {
        boolean res1 = isEvenNumber(12); // 变量的数据类型 和 方法返回的数据类型一致
        System.out.println(res1);
        boolean res2 = isEvenNumber(13);
        System.out.println(res2);
    }
    
  4. demo 两数之和

    public static void main(String[] args) {
        int a = 13;
        int b = 99;
        int res = getTwoSum(a, b);
        System.out.println(res);
    }
    public static int getTwoSum(int a, int b) {
        return a + b;
    }
    

1.5 方法的注意事项

  1. 方法不能嵌套定义

  2. void 无返回值 方法中可以不加return或者有return但return后面不返回数值

  3. return 代表方法结束,后面代码不会执行

  4. 方法的通用格式

    public static 返回值数据类型 方法名 (数据类型 参数1, 数据类型 参数2···) {
        方法体;
        return 数值;
    }
    
    1. public static 修饰符
    2. 返回值数据类型:方法执行完返回数值 void不返回
    3. 方法名: 方法调用的标识
    4. 参数:
    5. 方法体:方法中处理过程
    6. return:
  5. 方法定义两个明确 明确返回值类型 明确参数类型和个数

1.6 方法重载

  1. 方法重载的含义,同一个类中多个方法的关系

  2. 满足方法重载关系的条件

    1. 多个方法在同一个类中
    2. 多个方法具有相同的方法名
    3. 多个方法的参数不同 参数的类型或数量不同
  3. 方法重载特点

    1. 方法重载只跟方法的定义有关,与方法调用无关
    2. 方法重载关系判断只与方法名和变量有关,和返回值无关
  4. demo 调用时根据参数类型和个数调用方法

    public static int getSum (int a, int b) {
        return a + b;
    }
    public static double getSum (double a, double b) {
        return a + b;
    }
    public static int getSum (int a, int b, int c) {
        return a + b + c;
    }
    
    public static void main(String[] args) {
        int res1 = getSum(12,13);
        int res2 = getSum(13, 14 , 15);
        double res3 = getSum(1.23, 2.35);
        System.out.println(res1);
        System.out.println(res2);
        System.out.println(res3);
    }
    

1.7 方法中参数传递

  1. 基本类型 方法中形式参数的改变,不影响方法外实际参数的值

    public static void change (int num){
        num = 200;
    }
    
    public static void main(String[] args) {
        int num = 100;
        System.out.println("方法调用前 num = " + num);
        change(num);
        System.out.println("方法调用后 num = " + num);
    }
    
  2. 引用类型 方法中形式参数的改变,影响方法外实际参数的值 引用类型传递参数地址

    public static void change (int[] nums) {
        nums[0] = 100;
    }
    
    public static void main(String[] args) {
        int[] nums = {1, 2 ,3};
        System.out.println("调用方法前 nums[0] = " + nums[0]);  // 1
        change(nums);
        System.out.println("调用方法后 nums[0] = " + nums[0]);  // 100
    }
    

1.8 方法练习

  1. 数组遍历 一行打印 System.out.print()不换行打印

    public static void getArr (int[] nums) {
        System.out.print("[");
        for (int i = 0; i < nums.length - 1; i++) {
            System.out.print(nums[i]);
            System.out.print(", ");
        }
        System.out.print(nums[nums.length - 1]);
        System.out.print("]");
    }
    
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5};
        getArr(nums);
    }
    
  2. 获取数组最值

    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7};
        System.out.println(getArrMax(nums));
    }
    
    public static int getArrMax(int[] nums) {
        int res = nums[0];
        for (int x : nums) {
            res = res > x ? res : x;
        }
        return res;
    }
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值