20145113 实验二 Java面向对象程序设计

实验内容

  • 初步掌握单元测试和TDD
  • 理解并掌握面向对象三要素:封装、继承、多态
  • 初步掌握UML建模
  • 熟悉S.O.L.I.D原则
  • 了解设计模式
  • ###1.初步掌握单元测试和TDD #####进行复数类的编写,实现了加减乘除功能。
    刚开始的时候,传入的参数是复数的实部与虚部,然后直接打印出加减乘除后的结果,没有返回值。但是在要进行单元测试的时候发现如果没有返回值的话就没法检验预期与实际的结果是否相同。于是建了一个复数类,存放复数的实部与虚部,然后进行加减乘除的时候
    public static Complex add(Complex com1, Complex com2)
    

    传入的是复数的实例,返回的也是复数实例。然后对equals方法进行改写

        @Override
    public boolean equals(Object obj) {
    
        Complex c = (Complex)obj;
       if((Math.abs(c.getReal()-this.getReal())<0.00001)&&(Math.abs(c.getUnreal()-this.getUnreal())<=0.0001))
        return true;
        else
           return false;
    }
    

    然后根据教程使用单元测试,右击->Generate->JUnit Test

    @Test
    public void testAdd() throws Exception {
        Assert.assertEquals(new Complex(0, 2), Oporate.add(new Complex(0, 1), new Complex(1, 1)));
    }
    

    如果期望与实际不相符的时候,会具体指出是哪个地方不相符

    但是存在问题是不能直观看到期望值与实际值。于是进行对toString()方法进行改写。

     @Override
    public String toString() {
        return "[" +getReal() + (getUnreal()>0?"+":"") + getUnreal()+"]";
    }
    

    2.初步掌握UML建模

    并生成java代码,但是由于刚开始用UML生成的java代码就显得很简陋了,还需不断熟悉。

    3.熟悉S.O.L.I.D原则

    1.Single Responsibility Principle (SRP) – 职责单一原则

    2.Open/Closed Principle (OCP) – 开闭原则

    3.Liskov substitution principle (LSP) – 里氏代换原则

    4.Interface Segregation Principle (ISP) – 接口隔离原则

    5.Dependency Inversion Principle (DIP) – 依赖倒置原则