方法

方法设计原则

一个方法只完成一个功能,有利于后期扩展

Return

public int max(int a, int b) {
        int result = 0;
    //	用来返回最终结果,防止多个return
        if (a==b){
            System.out.println("a=b");
            return 0;
            // 可以用来终止方法
        }
        if (a > b) {
            result = a;
        }else
            result = b;
        return result;
    }		

值传递

java是值传递,只有值传递

重载

一个类中,有相同的函数名称,但参数不同的方法

规则

  • 方法名称必须相同
  • 参数列表必须不同(参数个数,类型,排列顺序不同等)
  • 方法返回类型可以相同也可以不同
  • 仅仅返回类型不同,不可以算作重载

命令行传参

jdk版本不同导致的编译运行版本不一致,

此时我的idea中jdk版本为11,cmd里jdk为1.8,版本不一致

package com.syzCodeGround.Method;

public class Demo2_CommandLine {
    public static void main(String[] args) {
        for (int i = 0; i < args.length; i++) {
            System.out.println("args["+i+"]"+args[i]);
        }
    }
}

可变参数

不定项参数

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

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

这个参数相当于数组

public static void main(String[] args) {
        Demo3_VariableParameter demo = new Demo3_VariableParameter();
        demo.brint(1,12,31,4);
    }
    public void brint(int... a)
    {
        for (int i :a){
            System.out.print(i+" ");
        }
    }

简单实现计算器

package com.syzCodeGround.Method;

import java.util.Scanner;

public class Demo4_Calculator {
    public static void main(String[] args) {
        Demo4_Calculator demo = new Demo4_Calculator();
        Scanner sc = new Scanner(System.in);

        while (true){
            System.out.println("请输入第一个数字:");
            double a = sc.nextDouble();
            System.out.println("请输入运算符:");
            char sign = sc.next().charAt(0);
            System.out.println("请输入第二个数字");
            double b = sc.nextDouble();
            switch (sign){
                case '+':
                    System.out.println(demo.add(a,b));
                    break;
                case '-':
                    System.out.println(demo.sub(a,b));
                    break;
                case '*':
                    System.out.println(demo.mul(a,b));
                    break;
                case '/':
                    System.out.println(demo.div(a,b));
                    break;
                default:
                    System.out.println("请输入有效符号");
                    continue;
            }
        }
    }

    public double add(double a, double b) {
        return a + b;
    }
    public double sub(double a, double b) {
        return a - b;
    }
    public double mul(double a, double b) {
        return a * b;
    }
    public double div(double a, double b) {
        return a / b;
    }

}

注意接收运算符时,使用next.charAt(),而非nextLine()

posted @ 2024-07-15 10:41  SyzTak  阅读(6)  评论(0)    收藏  举报