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

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

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

 先看效果图:

 代码如下:

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;

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值