Java基础--》做个简易的计算器

使用多态实现计算器的加减乘除,根据运算符不同实例化不同子类进行计算(运算符可键盘接收输入)

  • 例如:加法有num1、num2属性,方法:计算求和
  • 减法有num1、num2属性,方法:计算求差
  • 乘法有num1、num2属性,方法:计算求乘
  • 除法有num1、num2属性,方法:计算求除

 先看效果图:

Java基础--》做个简易的计算器_第1张图片

 代码如下:

package com_03.jin;

import java.util.Scanner;

/**
 * 使用多态实现计算器的加减乘除,根据运算符不同实例化不同子类进行计算(运算符可键盘接收输入)
 * 例如:加法有num1、num2属性,方法:计算求和
 * 减法有num1、num2属性,方法:计算求差
 * 乘法有num1、num2属性,方法:计算求乘
 * 除法有num1、num2属性,方法:计算求除
 */
public class Demo5 {
    public static void main(String[] args) {
        Calculate calculate = null;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入第一个数:");
        int a = scanner.nextInt();

        System.out.println("请输入操作符:");
        String operator = scanner.next();
        System.out.println("请输入第二个数:");
        int b = scanner.nextInt();

        System.out.println("需要计算结果请输入(等号):=");
        String equal = scanner.next();


        switch (operator) {
            case "+":
                calculate = new Add(a, b);

                break;
            case "-":
                calculate = new Subtraction(a, b);
                break;
            case "*":
                calculate = new Take(a, b);

                break;
            case "/":
                calculate = new Remove(a, b);
                break;
        }
        if (equal.equals("=")) {

            double res = calculate.operation();
            System.out.println(res);
        } else {
            System.out.println("请正确按提示进行操作哦!");
        }
    }
}

abstract class Calculate {
    public int num1;
    public int num2;

    public Calculate(int num1, int num2) {
        this.num1 = num1;
        this.num2 = num2;
    }

    /**
     * 操作两个数
     * 可以声明一个抽象方法
     *
     * @return
     */
    public abstract double operation();
}

//加法
class Add extends Calculate {

    public Add(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public double operation() {
        return this.num1 + this.num2;
    }
}

class Subtraction extends Calculate {

    /**
     * 有参构造方法
     */
    public Subtraction(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public double operation() {
        return this.num1 - this.num2;
    }
}

class Take extends Calculate {

    /**
     * 有参构造方法
     *
     * @param num1
     * @param num2
     */
    public Take(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public double operation() {
        return this.num1 * this.num2;
    }
}

class Remove extends Calculate {

    /**
     * 有参构造方法
     *
     * @param num1
     * @param num2
     */
    public Remove(int num1, int num2) {
        super(num1, num2);
    }

    @Override
    public double operation() {

        return this.num1 / this.num2;

    }
}

你可能感兴趣的:(java基础,java,python,开发语言)