实验目的与要求 深刻理解面向对象编程思想与设计原则,熟悉Java语言中类的声明、属性的声明、方法的定义、对象的创建与使用等语法知识,能够根据具体问题完成对象的抽象、类的定义及程序的编写,并在程序中使用适当的设计原则,初步体验面向对象编程的优点。 实验内容 使用Java语言编写一个能实现“加、减、乘、除”四则运算的计算器程序。 要求: (1)在程序中要体现面向对象编程语言的三大特征:封装、继承和多态。 (2)该程序要易于扩展和复用。以后可以方便地增加新的运算;程序的业务逻辑与界面部分要实现分离,便于业务逻辑的复用。 (3)使用UML类图描述程序的结构。 (4)指出你所设计的程序符合哪些设计原则。

UML类图 image.png 实现代码

Calculator类(计算器类):
public class Calculator {
    public double num1;
    public double num2;
    public Calculator(double num1, double num2) {
        this.num1=num1;
        this.num2=num2;
    }
    public double getResult() {
        return 0;
    }
}
Add类(加法类):
public class Add extends Calculator{
    public Add(double num1,double num2) {
        super(num1,num2);
    }
    public double getResult() {
        return num1+num2;
    }
}
Sub类(减法类):
public class Sub  extends Calculator{
    public Sub(double num1,double num2) {
        super(num1,num2);
    }
    public double getResult() {
        return num1-num2;
    }
}
Mul类(乘法类):
public class Mul extends Calculator{
    public Mul(double num1,double num2) {
        super(num1,num2);
    }
    public double getResult() {
        return num1*num2;
    }
}
Div类(除法类):
public class Div extends Calculator{
    public Div(double num1,double num2) {
        super(num1,num2);
    }
    public double getResult() {
        return num1/num2;
    }
}
Oper类(操作类):
public class Oper {
    public static void main(String[] args) {
        Calculator calculator=new Add(1,2);
        double result = calculator.getResult();
        System.out.println(result);
        calculator=new Sub(1,2);
        result = calculator.getResult();
        System.out.println(result);
        calculator=new Mul(1,2);
        result = calculator.getResult();
        System.out.println(result);
        calculator=new Div(1,2);
        result = calculator.getResult();
        System.out.println(result);
    }
}

问题思考:你所设计的程序符合哪些设计原则? 开闭原则、里氏替换原则、单一职责