20145105 《Java程序设计》实验二总结
实验二 Java面向对象程序设计
一、 实验内容:
- 初步掌握单元测试和TDD
- 理解并掌握面向对象三要素:封装、多态、建模
- 初步掌握UML
- 熟悉S.O.L.I.D原则
- 了解设计模式
二、 实验步骤
(一) 单元测试
- 三种代码:伪代码、产品代码、测试代码
(1) 伪代码
(2) 产品代码
(3) 测试代码
(4) 经测试结果有错误
(5) 作出修改
(6) 测试无误
- TDD(Test Driven Development,测试驱动开发)
(1) 新建项目,新建测试目录,新建测试用例类
(2) 增加测试用例(@Test)
(3) 在src中新建MyUtil类,实现测试用例中的方法
(4) 进行测试,通过
(二) 面向对象三要素
- 抽象:过程抽象,数据抽象
(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程序设计》实验二总结的更多相关文章
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- Java程序设计实验 实验五
课程:Java程序设计实验 班级:1353 姓名:符余佳源 学号:20135321 成绩: 指导教师:娄嘉鹏 实验日期:2015. ...
- 南邮JAVA程序设计实验1 综合图形界面程序设计
南邮JAVA程序设计实验1 综合图形界面程序设计 实验目的: 学习和理解JAVA SWING中的容器,部件,布局管理器和部件事件处理方法.通过编写和调试程序,掌握JAVA图形界面程序设计的基本方法. ...
- Java程序设计 实验三
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指 ...
- JAVA程序设计 实验一
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- JAVA程序设计 实验一报告
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1351 姓名:李畅宇 学号:20135129 成绩: 指导教师:娄嘉鹏 ...
- .NET程序设计实验二
实验二 面向对象程序设计 一.实验目的 1. 理解类的定义.继承等面向对象的的基本概念: 2. 掌握C#语言定义类及其各种成员(字段,属性,方法)的方法: 3. 掌握方法覆盖的应用: 4. 掌握接口 ...
- Java程序设计 实验五
实 验 报 告 课程:Java 班级: 1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 实验日期:2015.6. ...
- C++程序设计--实验二
第二次实验主要内容是函数重载,快速排序及其模板实现,简单的user类实现. 实验结论: 一.函数重载编程练习 /*编写重载函数add(),实现对int型,double型和Complex型数据的加法.在 ...
- Java程序设计(二)作业
题目1:输入一个三位十进制数,对其每一位进行筛选,逆序组合后输出. package test; import java.util.*; public class test2{ public stati ...
随机推荐
- 【紫书】【重要】Abbott's Revenge UVA - 816 bfs 复杂模拟 带方向参数的迷宫
题意:一个迷宫,每个交叉路口有一路标,限制了你从某方向进入该路口所能进入的路口. 题解:1.对于方向的处理:将node多增加一维dir,通过一个const 字符数组 加 上dir_id函数 以及一个方 ...
- Integral transform 积分变换
总结: 1.为了更加便于求解,将方程从原域映射到另外一个域 Integral transform - Wikipedia https://en.wikipedia.org/wiki/Integral_ ...
- Networking---poj1287最小生成树
http://poj.org/problem?id=1287 最小生成树模板题类似的还有:poj1258 hdu1233代码几乎一样: 最小生成树详解 #include<stdio.h> ...
- mysql清空有外键关联的表
第一种:(不要外键约束) 手动删除外键约束: 删除表数据 第二种:(保留外键约束) SET FOREIGN_KEY_CHECKS = 0; TRUNCATE TABLE 表名; SET FORE ...
- mysql 开启profiling
mysql 开启profiling
- 【剑指offer】斐波那契数列
一.题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项.n<=39 二.思路: 式子: n=0时,f=0:n=1或者n=2时f=1:否则f=f(n-1)+f(n ...
- vue使用resource传参数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- The Die Is Cast(poj 1481简单的双dfs)
http://poj.org/problem?id=1481 The Die Is Cast Time Limit: 1000MS Memory Limit: 10000K Total Submi ...
- LNMPA架构剖析
LAMP或LNMP的劣势: Nginx是小巧而高效的Linux下Web服务器,跟Apache相比,它消耗资源更少,支持的并发连接更多,反向代理功能效率高.静态文件处理更快等等,Nginx可以承受3万以 ...
- webpack相关
原文 https://segmentfault.com/a/1190000005089993 Webpack是目前基于React和Redux开发的应用的主要打包工具.我想使用Angular 2或其他 ...