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


     

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

     

    一、  实验要求

    1.完成实验、撰写实验报告,以博客方式发表在博客园

    2.实验报告重点是运行结果、遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法

    3. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施

    二、实验内容

    1. 初步掌握单元测试和TDD

    2. 理解并掌握面向对象三要素:封装、继承、多态

    3. 初步掌握UML建模

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

    5. 了解设计模式

     

    三、实验过程

    (一)单元测试

    1.知识点:伪代码,产品代码,测试代码

    举例:(1)伪代码:从意图层面来解决问题,最终,伪代码是产品代码最自然的最好的注释。

    (2)产品代码:有了伪代码,我们用特定编程语言翻译一下,就是可用的产品代码

    (3)测试代码:用以对产品代码进行测试的代码

    以将学生成绩分等级为例,实现代码如下:

    正常的测试,如果55不是fail,则测试失败等

     

    因为之前没有考虑100,所以边缘测试时100是fail的,只要在100那加上<=,就可以,改进结果如下:

     

    (二)TDD(Test Driven Devlopment, 测试驱动开发)

    先写测试代码,然后再写产品代码的开发方法叫“测试驱动开发”(TDD)。TDD的一般步骤如下:

    • 明确当前要完成的功能,记录成一个测试列表
    • 快速完成编写针对此功能的测试用例
    • 测试代码编译不通过(没产品代码呢)
    • 编写产品代码
    • 测试通过
    • 对代码进行重构,并保证测试通过(重构下次实验练习)
    • 循环完成所有功能的开发

    以下是一个TDD实例的练习运行结果图(绿条表明测试通过):

     

     (三)面向对象三要素

    (1)抽象:抽出事物的本质特征而暂时不考虑他们的细节。

    (2)封装、继承与多态:

    主要为umbrella软件的使用,在Linux虚拟机中运行结果如下:

     Dog,Cat,Animal类的使用,

    一下为最后一个结果截图:只需要一个getInfo,参数为父类Animal,当方法参数类型为父类时,可以传入子类的对象

     

     (四)设计模式初步

    (1)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,依赖倒置原则)

    (2)模式与设计模式

    模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯用解决之道。其中最重要的是设计模式。

    (3)设计模式实示例

    设计模式四个基本元素

    Pattern name:描述模式,便于交流,存档

    Problem:描述何处应用该模式

    Solution:描述一个设计的组成元素,不针对特例

    Consequence:应用该模式的结果和权衡

    以下为一个实例的结果截图:

     

    (五)练习

    使用TDD的方式设计实现复数类Complex。

    首先建立一个类,标准复数:ai+b。那么在类里,如果a或b等于0时,输出error,否则输出复数的标准式。在TDD方法中,如果每一个测试都通过,则最后条为绿色,一下为结果截图:

     

     

     

     

     

     

  • 相关阅读:
    JS框架设计读书笔记之-选择器引擎02
    JS框架设计读书笔记之-选择器引擎01
    JS框架设计读书笔记之-小知识
    JS框架设计读书笔记之-函数
    JS框架设计读书笔记之-核心模块
    7.19 NOIP模拟6
    一 网络基础之网络协议篇
    Socket 网络编程
    Python 常用模块
    类的特殊成员
  • 原文地址:https://www.cnblogs.com/shadow135211/p/4483647.html
Copyright © 2020-2023  润新知