java方法

Java方法

System.out.println()

方法是语句的集合

原则:一个方法只完成一个功能,利于我门后期的拓展

定义

类似于其他语言的函数,用来完成特定功能的代码片段

package com.yang.Method;

public class Demo0
{
    //main方法
    public static void main(String[] args) {
        //实参就是实际传递的参数
        double add = add(1.0, 2.0);
        int add1 = add(1, 3);
        System.out.println(add);
    }
    //加法
    //形参用来定义作用
    public static int add(int a,int b){
        return a+b;
    }
    public static double add(double a,double b){
        return a+b;
    }

}

重载

在一个类中,相同的函数名称,形参不同的函数。

规则

方法名称必须相同

参数列表必须不同(个数或者类型,参数排列顺序不同等)

返回类型可以相同也可以不同。

package com.yang.Method;

public class Demo02 {
    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;
        //拓展了解 值传递和引用传递
    }
}

命令行传参

希望运行一个程序时候再给他传递消息,给main()函数实现

package com.yang.Method;

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]);
        }
    }
}

在终端中打开 要退到src包文件中执行

可变参数

不定项参数

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

一个方法中只能指定一个可变参数,必须是方法等最后一个参数,任何参数必须在他之前声明。

package com.yang.Method;

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

    }
    public void test(int... i){
        System.out.println(i[1]);
    }
}

递归

A方法调用A方法,自己调用自己

递归结构包括2部分

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

能不用递归就不用递归

package com.yang.Method;

public class Demo05 {
    public static void main(String[] args) {
        Demo05 test = new Demo05();
        test.test();
    }
    public void test(){
        test();
    }
}

package com.yang.Method;

public class Demo06 {
    //5! 5*4*3*2*1

    //递归思想
    public static void main(String[] args) {
        System.out.println(f(3));
    }
    public static int f(int n){

        if (n==1){
            return 1;
        }else {
            return n*f(n-1);
        }
    }
}

测试

写一个计算器,实现加减乘除,并且能够循环接收新的数据,通过用户交互实现。
package com.yang.Method;


import java.util.Scanner;

public class test {
    //写一个计算器,实现加减乘除,并且能够循环接收新的数据,通过用户交互实现。
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入的第一个数:");
        Double num1 = scanner.nextDouble();
        System.out.print("运算符为:");
        String operator = scanner.next();
        System.out.print("请输入第二个数:");
        Double num2 = scanner.nextDouble();

        double result = 0;
            switch (operator){
                case "+":
                    result = num1 + num2;
                    break;
                case "-":
                    result = num1 - num2;
                    break;
                case "*":
                    result = num1 * num2;
                    break;
                case "/":
                    //如果被除数为0
                    if(num2 != 0){
                        System.out.println(num1/num2);
                    }else {
                        System.out.println("输入异常");
                    }
                    return;
                default:
                    System.out.println("输入为异常");
                    return;
            }
        System.out.printf("%.1f %s %.1f = %.1f%n",num1,operator,num2,result);

        scanner.close();
    }


}

posted @ 2024-08-15 22:24  yoyy3  阅读(22)  评论(0)    收藏  举报