Java方法 (含计算器代码)

发布于:2023-01-19 ⋅ 阅读:(578) ⋅ 点赞:(0)

方法

什么是方法

Java方法是语句的集合,它们在一起执行一个功能

  • 方法是解决一类问题的步骤的有序组合
  • 方法包含于类或对象中
  • 方法在程序中被创建,在其他地方被引用

方法的命名规则

首字母小写后驼峰

设计方法的原则

原子性:保证一个方法只能完成1个功能

一般来说,main方法内要求简洁,因此我们就需要使用方法来简化main方法内的操作

public static void main(String[] args) { //main方法
    int sum = add(4,5);     //使用该方法
    int sum2= add(81,19);   //使用该方法
    System.out.println(sum);
    System.out.println(sum2);
}


public static int  add(int a, int b){  //创建add的方法
//修饰符   返回值  名字v
    return a+b;
}

定义和调用

方法的格式

在这里插入图片描述

比如说public static (修饰符) void(返回值) main(){

}

 public static void main(String[] args) {
        int max = max(20,20);   //使用下面的方法
        System.out.println(max); //输出哪个值大
    }

public static int max(int num1,int num2){ //定义方法
        int result = 0;    //编写方法体
        if (num1>num2){    
            result= num1;
        }else if (num1<num2){
            result = num2;
        }else{
            System.out.println("结果相等哦");
        }
        return result; //如果返回值不为空一定要返回值
                    //return也可用于终止方法《有始有终》
}

方法重载

方法重载就是在一个类中,有相同的函数名称,但形参不太能的函数

方法重载的规则

方法名称必须相同

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

方法的返回类型可以相同也可以不相同

仅仅返回类型不同不足以成为方法的重载

public static int  add(int a, int b){
//修饰符   返回值  名字
    return a+b;
}
public static int  add(int a, int b,int c){
    //这里是改变参数列表的个数达到方法重载↑
    //修饰符   返回值  名字
    return a+b;
}

命令行传参

有时候你希望运行一个程序的时候再传递给他消息,只需要出阿暖地命令行参数给main()函数实现

但如果需要运行class文件,路径要从src开始写包的路径

在这里插入图片描述

在这里插入图片描述

可变参数

在编写方法时,如果不确定需要加几个参数或者需要兼容多个参数,可使用可变参数(写N个方法重载的良性代替)

使用条件

在指定参数类型后加一个省略号(…)

同时需要保证省略号加在靠最后一个参数上

在这里插入图片描述

递归

递归即A方法调用A方法,我自己调用自己

递归可以将一些复杂的问题转化为相对简单的问题来求解。大大地减少了程序的代码量。递归的能力在于用有限的语句定义对象的无限集合

递归包含两个部分:

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

递归体:什么时候需要调用自身方法

测试

//写一个计算器,要求实现加减乘除,并能够循环接收新的数据,通过用户交互实现
//思路推荐:写4个方法加减乘除 利用循环+switch进行用户交互,传递需要操作的两个数,输出结果

package com.jiang.method;

import java.util.Scanner;

//写一个计算器,要求实现加减乘除,并能够循环接收新的数据,通过用户交互实现
//思路推荐:写4个方法加减乘除 利用循环+switch进行用户交互,传递需要操作的两个数,输出结果
public class TestDemo01 {
    public static void main(String[] args) {
        double a=0;
        double b=0;
        String c=null;
        String d="null";
        double result=0;
        System.out.println("欢迎来到一个菜鸡想写计算器但只能写一点点的计算器程序");
        System.out.println("本计算器只支持两位数字的四则运算,所以");


        for (int i = 0; i < 10; i++) {
            Scanner scanner1 = new Scanner(System.in);
            System.out.println("请输入你的第一位数字a");
            a = scanner1.nextDouble();

            Scanner scanner3 = new Scanner(System.in);
            System.out.println("再请输入运算符(+,-,*,%)");
            c = scanner3.nextLine();

            Scanner scanner2 = new Scanner(System.in);
            System.out.println("最后请输入第二位数字b");
            b = scanner2.nextDouble();

            switch (c){
                case "+":
                    result=plus(a,b);break;
                case "-":
                    result=subtract(a,b);break;
                case "*":
                    result=multiply(a,b);break;
                case "%":
                    result=divide(a,b);break;
                default:
                    System.out.println("你的输入有误,请重新输入!");
            }   System.out.println("结果为:"+result);
            System.out.println("还需要继续进行运算吗(是请输入(‘Y’、‘y’),不是请输入(‘N’、‘n’))");
            Scanner scanner4 = new Scanner(System.in);
            d = scanner4.nextLine();
            if (d.equals("y")||d.equals("Y")){
                System.out.println("正在重新开始。。。");
                continue; }
            else if (d.equals("n")||d.equals("N")){
                break ;//这里如果想要接收文字类,记得使用equals!!!!!!!!!!
            }

            }

        }


    public static double plus(double a , double b){
        return a+b;
    }
    public static double subtract(double a , double b){
        return a-b;
    }
    public static double multiply(double a , double b){
        return a*b;
    }
    public static double divide(double a , double b){
        return a/b;
    }
}

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到