Java方法

方法


例:System.out.println()

​ 类. 对象. 方法

最好保持方法的原子性

方法的所有部分:

  • 修饰符:可选,告诉编译器如何调用方法。定义了访问类型

  • 返回值:方法可能会返回值。returnValueType是方法返回的数据类型。

  • 方法名:方法实际名称

  • 参数类型:参数像一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量、参数列表是指方法参数类型、顺序和参数个数。参数是可选的,方法可以不包含任何参数。

    形参:方法被调用时用于接收外界输入的数据。

    实参:调用方法时实际传给方法的数据

  • 方法体:方法体包含具体的语句,定义该方法的功能

public static void main(String[] args) {
    int max= max(10,20);
    System.out.println(max);
}

//比大小
public static int max(int num1, int num2){
    int result = 0;

    if(num1==num2){
        System.out.println("num1 == num2");
        return 0;//终止方法
    }

    if(num1>num2){
        result = num1;
    }
    else{
        result=num2;
    }

    return result;
}

tip:方法的return放在最外层,加一个result传导结果

方法的重载

在一个类中:

  1. 有相同的方法名称
  2. 但参数列表必须不同
  3. 方法返回值可以相同也可不同
  4. 仅返回类型不同不足以成为方法的重载

命令行传参

你希望运行一个程序运行时传递消息,靠传参给main函数实现

tip:命令行运行.class时,因为在某包中,所以要回退到src目录下

public class Demo03 {
    public static void main(String[] args) {
        //args.length 数组长度
        for(int i = 0; i<args.length; i++){
            System.out.println("args["+i+"]:"+args[i]);
        }
    }
}

可变参数

java支持传递同类型的可变参数给一个方法

在方法声明中,指定参数类型后加一个省略号

在一个方法中,只能指定一个可变参数,他必须是方法的最后一个参数

public class Demo04 {
    public static void main(String[] args) {
        Demo04 demo04 = new Demo04();
        demo04.test(1,2,3,4,5);

    }
    public void test(int... i){
        System.out.println(i[0]);
        System.out.println(i[1]);
        System.out.println(i[2]);
        System.out.println(i[3]);
        System.out.println(i[4]);
    }
}
public class Demo05 {
    public static void main(String[] args) {
        printMax(34,3,3,2,56.5);
        printMax(new double[]{1,2,3});//可变长参数本质是数组
    }

    public static void printMax(double... numbers){
        if (numbers.length == 0){
            System.out.println("No argument passed");
            return;
        }

        double result=0;
        for (int i = 0;i< numbers.length; i++){
            if (numbers[i]>result){
                result = numbers[i];
            }
        }
        System.out.println("Max number is :" + result);
    }
}

递归

自己调用自己,大大减少代码量

递归包含两部分

  1. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
  2. 递归体:什么时候需要调用自身方法

java递归使用栈机制

练习

import java.util.Scanner;

public class Calculator {
    public static void main(String[] args) {
        Calculator calculator = new Calculator();
        double result = calculator.calculate();
        System.out.println("===============");
        System.out.println("结果为:" + result);

    }

    //运算选择
    public double calculate(){
        System.out.println("请输入运算类型:");

        Scanner scanner = new Scanner(System.in);
        String symbol = scanner.next();

        System.out.println("================");
        System.out.println("请输入运算数:");

        double a = scanner.nextDouble();
        double b = scanner.nextDouble();

        double result=0;

        switch (symbol){
            case "+":
                result=add(a,b);
                break;
            case "-":
                result=minus(a,b);
                break;
            case "*":
                result=multiply(a,b);
                break;
            case "/":
                result=divide(a,b);
                break;
            default:
                System.out.println("输入错误");
        }

        return result;


    }

    //加法
    public double add(double a, double b){
        return a+b;
    }

    //减法
    public double minus(double a, double b){
        return a-b;
    }

    //乘法
    public double multiply(double a, double b){
        return a*b;
    }

    //除法
    public double divide(double a, double b){
        return a/b;
    }


}
posted @ 2021-02-25 13:42  SagiriV  阅读(23)  评论(0)    收藏  举报