2017-2018-2 20165228 实验二《Java面向对象程序设计》实验报告

2017-2018-2 20165228 实验二《Java面向对象程序设计》实验报告

相关知识点

三种代码html

  • 伪代码:注释,与具体编程语言无关
  • 产品代码:由伪代码翻译而来的具体编程语言语法相关的语句
  • 测试代码:以测试用例来测试产品代码中是否存在bug
    测试驱动开发(TDD)
    TDD的通常步骤以下:
  • 明确当前要完成的功能,记录成一个测试列表
  • 快速完成编写针对此功能的测试用例
  • 测试代码编译不经过(没产品代码呢)
  • 编写产品代码
  • 测试经过
  • 对代码进行重构,并保证测试经过(重构下次实验练习)
  • 循环完成全部功能的开发
    TDD的编码节奏是:
  • 增长测试代码,JUnit出现红条
  • 修改产品代码
  • JUnit出现绿条,任务完成
    S.O.L.I.D类设计原则:
  • SRP(Single Responsibility Principle,单一职责原则)
  • OCP(Open-Closed Principle,开放-封闭原则)
  • LSP(Liskov Substitusion Principle,Liskov替换原则)
  • ISP(Interface Segregation Principle,接口分离原则)
  • DIP(Dependency Inversion Principle,依赖倒置原则)java

    实验内容

    (一)面向对象程序设计-1

    检查点要求:
  • 参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECUNITTEST 完成单元测试的学习
  • 提交最后三个JUnit测试用例(正常状况,错误状况,边界状况)都经过的截图,截图上要有画图加水印,输入本身的学号
  • 本提交点考查JUnit会不会使用,测试用例至少要包含正常状况,错误状况,边界状况的测试git

    例子说明:咱们要在一个MyUtil类中解决一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能。
    码云连接:
  • Exp2-1Program
  • Exp2-1ProgramTest编程

    相关截图:

(二)面向对象程序设计-2

检查点要求:

(三)面向对象程序设计-3

检查点要求:
  • 参考实验二 Java面向对象程序设计对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
  • 用本身的学号%6进行取余运算,根据结果进行代码扩充:
    0:让系统支持Byte类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
    1:让系统支持Short类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
    2:让系统支持Boolean类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
    3:让系统支持Long类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
    4:让系统支持Float类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印
    5:让系统支持Double类,并在MyDoc类中添加测试代码代表添加正确,提交测试代码和运行结的截图,加上学号水印app

    码云连接:
  • Exp2-3Program编程语言

    相关截图:

(四)面向对象程序设计-4

检查点要求:
  • 提交:单元测试代码和运行成功截图及码云上代码连接,截图要加上学号水印
  • 任务:以TDD的方式开发一个复数类Complex,要求以下:
// 定义属性并生成getter,setter
double RealPart;
double ImagePart;
// 定义构造函数
public Complex()
public Complex(double R,double I)
//Override Object
public boolean equals(Object obj)
public String toString()
// 定义公有方法:加减乘除
Complex ComplexAdd(Complex a)
Complex ComplexSub(Complex a)
Complex ComplexMulti(Complex a)
Complex ComplexDiv(Complex a)
码云连接:

(五)面向对象程序设计-5

检查点要求:
  • 用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印
  • 类图中只少两个类
  • 类,继承,接口实现,组合在UML中表达函数

    相关截图:

实验中遇到的问题

  • 问题1:在第四个提交点用测试用例来调试bug时,出现了下图中的问题:

    当时计算的是11/25,结果应该为0.44,然而计算的结果为0.43999999999999995,这让我很困惑
  • 解决方法:通过认真思考和相关问题查找后,也未能解决此问题。使用其余测试用例调试都经过
  • 问题2:在第二个提交点写的程序中,我发现
buffer.append('S');  //调用方法append,缓存char型
 buffer.append("tringBuffer");  //调用方法append,缓存String型

buffer.append("StringBuffer")

打印效果同样,区别是什么?

  • 解决方法:经过屡次尝试,前者存储的两个数据存在于不一样的两个地址内存,只是显示时拼接在一块儿