Java:方法

46 阅读3分钟

目录

学习资料

b站狂神说: ps://www.bilibili.com/video/BV12J…

方法

一个方法只实现一个功能,一处定义,多处调用

定义语法: 修饰符 返回值类型 方法名(参数类型 参数名){

....方法体...

return 返回值

}

package com.zy7y.method;

/**
 * @ProjectName: JavaSE
 * @PackageName: com.zy7y.method
 * @Author: zy7y
 * @Date: 2020/8/14 下午5:44
 * @Description:
 */
public class method01 {
    public static void main(String[] args) {
        int a = 13;
        int b = 1;
        // 此处的a,b是实际参数
        add(a, b);

    }
    
    // 定义一个add的方法,返回值是int类型
    public static int add (int a, int b){
        // a , b形式参数
        return a + b;
    }
}

方法的重载

同一个类中,有相同的函数名称,但是形参不同的方法(函数).

重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同/类型不同/参数排列顺序不同等)
  • 方法的返回类型可以相同/不同/
  • 仅仅返回类型不同不不足以成为方法的重载。
package com.zy7y.method;

/**
 * @ProjectName: JavaSE
 * @PackageName: com.zy7y.method
 * @Author: zy7y
 * @Date: 2020/8/14 下午5:44
 * @Description:
 */
public class method01 {
    public static void main(String[] args) {
        int a = 13;
        int b = 1;
        // 此处的a,b是实际参数
        int result = add(13, 12,13);
        System.out.println(result);

    }

    // 定义一个add的方法,返回值是int类型
    public static int add (int a, int b){
        // a , b形式参数
        return a + b;
    }

    // 重载add方法: 参数个数不同
    public static int add (int a, int b, int c){
        return b + a + c;
    }
    // 重载add方法: 参数类型不同
    public static double add (double a, double b){
        return a + b;
    }
}

命令行传参

可变参数

可以是一个,也可以是多个

定义语法: 修饰符 返回值类型 方法名(参数类型... 参数名){

....方法体...

return 返回值

}

    public static void sum (int... numbers){
        for (int number:numbers) {
            System.out.println(number);
        }
    }

main方法

        sum(new int[]{1,3,4,5}); // 1 3 4 5
        sum(1); // 1

递归

自己调用自己

package com.zy7y.method;

/**
 * @ProjectName: JavaSE
 * @PackageName: com.zy7y.method
 * @Author: zy7y
 * @Date: 2020/8/14 下午6:26
 * @Description: 递归
 */
public class Recursion {
    public static void main(String[] args) {
        // 阶乘
        System.out.println(recursion(5));
    }

    public static int recursion(int number){
        if (number == 1) {
            return 1;
        }else{
            // 1的阶乘是1, 5的阶乘:5*4*3*2*1
            return number * recursion(number-1);
        }
    }
}

计算器作业

课程上是要求只用循环和switch,但是我没有好的实现方法所以加了个if

package com.zy7y.method;

import java.util.Scanner;

/**
 * @ProjectName: JavaSE
 * @PackageName: com.zy7y.method
 * @Author: zy7y
 * @Date: 2020/8/14 下午6:32
 * @Description: 计算器
 */
public class Topic {
    // 加
    public static int add(int a, int b){
        return a + b;
    }
    // 减
    public static int less(int a, int b){
        return a - b;
    }
    // 乘
    public static int product(int a, int b){
        return a * b;
    }
    //  除
    public static int consult(int a, int b){
        return a / b;
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        for (;;){
            System.out.println("请选择运算方式: 1 加法, 2 减法, 3 乘法, 4 除法");
            int choice = scanner.nextInt();
            if (choice != 1 && choice != 2 && choice != 3 && choice != 4){
                System.out.println("程序已退出!");
                System.exit(0);
            }
            System.out.print("输入第一个数字:");
            int a = scanner.nextInt();
            System.out.print("输入第二个数字:");
            int b = scanner.nextInt();
            switch (choice){
                case 1:
                    System.out.println(add(a,b));
                    break;
                case 2:
                    System.out.println(less(a,b));
                    break;
                case 3:
                    System.out.println(product(a,b));
                    break;
                case 4:
                    System.out.println(consult(a,b));
                    break;
            }
        }
    }
}