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

一、 实验内容:

  1. 初步掌握单元测试和TDD
  2. 理解并掌握面向对象三要素:封装、多态、建模
  3. 初步掌握UML
  4. 熟悉S.O.L.I.D原则
  5. 了解设计模式

二、 实验步骤

(一)   单元测试

  1. 三种代码:伪代码、产品代码、测试代码

(1)       伪代码

(2)       产品代码

(3)       测试代码

(4)       经测试结果有错误

(5)       作出修改

(6)       测试无误

  1. TDD(Test Driven Development,测试驱动开发)

(1)       新建项目,新建测试目录,新建测试用例类

(2)       增加测试用例(@Test)

(3)       在src中新建MyUtil类,实现测试用例中的方法

(4)       进行测试,通过

(二)   面向对象三要素

  1. 抽象:过程抽象,数据抽象

(1)       过程抽象实例(做了点小修改)

2. 封装、继承与多态

(1)       Java中用类进行封装,如Dog类

(2)       测试代码及结果

(3)       在UML中建立Dog类的类图

(4)       仿照Dog类实现Cat类

(5) 将相同属性写入父类

 (6)最终代码

(三)设计模式初步

(1)S.O.L.I.D原则

1. SRP——单一职责原则

决不要有一个以上的理由修改一个类。对象提供单一职责的高度封装,对象的改变仅仅依赖于单一职责的改变。

2. OCP——开放-封闭原则

  • 软件实体(类,模块,函数等)应该对扩充开放,对修改封闭。
  • 实现手段:(1)抽象和继承,(2)面向接口编程。

3. LSP——替换原则

  • 子类必须可以被其基类所代;使用指向基类的指针或引用的函数,必须能够在不知道具体派生类对象类型的情况下使用它。
  • 核心思想是父类型对象可以被子类型对象所取代。

4. ISP——接口分离原则

  • 客户不应该依赖他们并未使用的接口(接口的功能不要太多)

5. DIP——依赖倒置原则

  • 高层模块不应该依赖于低层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象 。

(2)模式与设计模式

  • 模式可以看作对一个问题的可复用的专家级解决方法
  • 模式中最重要的是设计模式

(3)设计模式实例

(四)练习

(1)伪代码

(2)测试代码

(3)产品代码

三、实验问题

1. 代码测试时发现如下错误

修改产品代码

再次测试,发现依然错误

再次修改

测试通过

四、实验心得

20145105 《Java程序设计》实验二总结的更多相关文章

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

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  2. Java程序设计实验 实验五

    课程:Java程序设计实验   班级:1353  姓名:符余佳源  学号:20135321 成绩:                           指导教师:娄嘉鹏      实验日期:2015. ...

  3. 南邮JAVA程序设计实验1 综合图形界面程序设计

    南邮JAVA程序设计实验1  综合图形界面程序设计 实验目的: 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法.通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. ...

  4. Java程序设计 实验三

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计   班级:1353       姓名:李海空  学号:20135329 成绩:             指 ...

  5. JAVA程序设计 实验一

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  6. JAVA程序设计 实验一报告

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1351  姓名:李畅宇  学号:20135129 成绩:             指导教师:娄嘉鹏 ...

  7. .NET程序设计实验二

    实验二  面向对象程序设计 一.实验目的 1. 理解类的定义.继承等面向对象的的基本概念: 2. 掌握C#语言定义类及其各种成员(字段,属性,方法)的方法: 3. 掌握方法覆盖的应用: 4. 掌握接口 ...

  8. Java程序设计 实验五

    实     验    报     告 课程:Java 班级: 1353    姓名:李海空   学号:20135329 成绩:              指导教师:娄嘉鹏   实验日期:2015.6. ...

  9. C++程序设计--实验二

    第二次实验主要内容是函数重载,快速排序及其模板实现,简单的user类实现. 实验结论: 一.函数重载编程练习 /*编写重载函数add(),实现对int型,double型和Complex型数据的加法.在 ...

  10. Java程序设计(二)作业

    题目1:输入一个三位十进制数,对其每一位进行筛选,逆序组合后输出. package test; import java.util.*; public class test2{ public stati ...

随机推荐

  1. Python的全局和局部变量

    global1 = " def o(): #global global1; global1=2; print(global1) def p(): print(global1) if __na ...

  2. 查找算法:二分法查找及其python实现案例

    承接上一篇:查找:顺序查找与二分法查找,将二分法更多详细的python实现解题写下笔记. 简单方法 ''' 二分法查找在列表中的用户输入值,返回index 三种情况跳出循环体: LR相邻 LR位置重合 ...

  3. Centos升级安装.Net core 1.1

    VS2017已经发布了一个多月了,最期待的功能就是.net core的更新,终于去掉了繁琐了project.json的文件配置.我们尝试打开一个VS2015的.net core项目,会自动升级至.ne ...

  4. 单例模式:Qt本身就提供了专门的宏 Q_GLOBAL_STATIC 通过这个宏不但定义简单,还可以获得线程安全性

    标题起的是有点大 主要是工作和学习中,遇到些朋友,怎么说呢,代码不够Qt化 可能是由于他们一开始接触的是 Java MFC 吧 接触 Qt 7个年头了 希望我的系列文章能抛砖引玉吧 单例模式 很多人洋 ...

  5. 【mlflow】执行import mlflow 报错:ImportError: No module named 'pkg_resources'

    命令行运行 python -c “import mlflow” 的时候报错: ImportError: No module named 'pkg_resources' 结果发现是因为本地有一个文件夹叫 ...

  6. 打造自己的 JavaScript 武器库

    原文 https://segmentfault.com/a/1190000011966867 github:https://github.com/proYang/outils 前言 作为战斗在业务一线 ...

  7. NYOJ 275 队花的烦恼一

    队花的烦恼一 时间限制:3000 ms  |  内存限制:65535 KB 难度:1 描写叙述 ACM队的队花C小+常常抱怨:"C语言中的格式输出中有十六.十.八进制输出,然而却没有二进制输 ...

  8. Linux发展历史图

    Linux发展历史图 http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.svg

  9. 最小生成树(kruskal模版 Prim模板)

    http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 最小生成树,最重要的是了解思想 稠密图用Prim,稀疏图用Kru ...

  10. ID和Name

    ID和Name都可以用来标识一个标记,Javascript分别有两个方法getElementById和getElementByName来定位Dom节点. 区别如下: 1.我们知道在网页做Post提交时 ...