20155235 《Java程序设计》 实验二 Java面向对象程序设计
20155235 《Java程序设计》 实验二 Java面向对象程序设计
实验内容
初步掌握单元测试和TDD
理解并掌握面向对象三要素:封装、继承、多态
初步掌握UML建模
熟悉S.O.L.I.D原则
了解设计模式
实验内容
- 单元测试
- 面向对象三要素
- 设计模式初步
- 使用TDD的方式设计关实现复数类Complex
实验步骤
(一)单元测试
(1) 三种代码
(2) TDD(Test Driven Devlopment, 测试驱动开发)
(二)面向对象三要素
(1)抽象
抽象一词的本意是指人在认识思维活动中对事物表象因素的舍弃和对本质因素的抽取。抽象就是抽出事物的本质特征而暂时不考虑他们的细节。
要求的抽象能力:"去粗取精、化繁为简、由表及里、异中求同"
对于复杂系统问题人们借助分层次抽象的方法进行问题求解;
在抽象的最高层,可以使用问题环境的语言,以概括的方式叙述问题的解。
在抽象的较低层,则采用过程化的方式进行描述。在描述问题解时,使用面向问题和面向实现的术语。
程序设计中,抽象包括两个方面,一是过程抽象,二是数据抽象。
(2)封装、继承与多态
面向对象(Object-Oriented)的三要素包括:封装、继承、多态。
封装:Java中用类进行封装。封装实际上使用方法(method)将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,从而带来模块化(Modularity)和信息隐藏(Information hiding)的好处;接口(interface)是封装的准确描述手段。
继承:继承基本上就是避免多个类间重复定义共同行为。
多态:使用单一接口操作多种类型的对象。
代码
public class AnimalTest {
public static void main(String[] args){
Dog d = new Dog();
d.setColor("Yellow");
getInfo(d);
Cat c = new Cat();
c.setColor("Black");
getInfo(c);
}
public static void getInfo(Dog d){
System.out.println(d.toString());
}
public static void getInfo(Cat c){
System.out.println(c.toString());
}
}
(三) 使用TDD的方式设计关实现复数类Complex
代码
import java.util.Scanner;
public class MyComplex {
static int r;
static int i;
private double m;
private double n;
public static int getRealPart(int RealPart){
r = RealPart;
return r;
}
public static int getImaginePart(int ImaginePart){
i = ImaginePart;
return i;
}
public MyComplex(double m, double n) {
this.m = m;
this.n = n;
}
public MyComplex ComplexAdd(MyComplex c) {
return new MyComplex(m + c.m, n + c.n);
}
public MyComplex ComplexSub(MyComplex c) {
return new MyComplex(m - c.m, n - c.n);
}
public MyComplex ComplexMulti(MyComplex c) {
return new MyComplex(m * c.m - n * c.n, m * c.n + n * c.m);
}
public MyComplex ComplexDiv(MyComplex c) {
return new MyComplex(m / c.m - n / c.n, m / c.n + n / c.m);
}
public String toString() {
String rtr_str = "";
if (n > 0)
rtr_str = "(" + m + "+" + n + "i" + ")";
if (n == 0)
rtr_str = "(" + m + ")";
if (n < 0)
rtr_str = "(" + m + n + "i" + ")";
return rtr_str;
}
}
实验结果
(四)实验体会
这次的实验,我觉得我做的还是不错的,虽然还是有点差错。
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 20min | 4/19 |
| 设计 | 30min | 6/19 |
| 代码实现 | 30min | 6/19 |
| 测试 | 10min | 2/19 |
| 分析总结 | 5min | 1/19 |
20155235 《Java程序设计》 实验二 Java面向对象程序设计的更多相关文章
- 20155202 《Java程序设计》实验二(面向对象程序设计)实验报告
20155202 <Java程序设计>实验二(面向对象程序设计)实验报告 代码托管 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉 ...
- Java程序设计 实验二 Java面向对象程序设计
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:李海空 学号:20135329 成绩: 指导教师:娄嘉鹏 ...
- 20155239《Java程序设计》实验二(面向对象程序设计)实验报告
实验内容 初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验步骤 单元测试 1.三种代码: 伪代码 ...
- 20165308 实验二 Java面向对象程序设计
20165308 实验二 Java面向对象程序设计 实验二 Java面向对象程序设计 一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 20145213《Java程序设计》实验二Java面向对象程序设计实验报告
20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告
20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...
- 20145113 实验二 Java面向对象程序设计
20145113 实验二 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 1.初 ...
随机推荐
- python 获取当前目录,上级目录,上上级目录
import os print '***获取当前目录***' print os.getcwd() print os.path.abspath(os.path.dirname(__file__)) pr ...
- Maven 阿里源
由于一些不可抗拒因素,在使用 maven 的时候我们不得不需要改变一些设置,以加快我们的下载速度. 仓库配置 在maven的settings.xml文件里的mirrors节点,添加如下子节点: ...
- tcp通讯中socket套接字accept和listen的关系
今天看到一个文章,客户端的connect在服务端调用accept之前,突然想到这可以建立正常的连接么?以前从没细细的思考过listen accept connect之前的关系,带着疑问学习了一下,记录 ...
- 从Vue-router到html5的pushState
最近在用vue的时候突然想到一个问题 首先,我们知道vue实现的单页应用中一般不会去刷新页面,因为刷新之后页面中的vuex数据就不见了. 其次,我们也知道一般情况下,url变更的时候,比如指定loca ...
- POJ-2452 Sticks Problem 二分+RMQ
题目链接: https://cn.vjudge.net/problem/POJ-2452 题目大意: 给出一个数组a,求最大的j-i满足 i<j && a[i] ... a[j] ...
- l2-loss,l2正则化,l2范数,欧式距离
欧式距离: l2范数: l2正则化: l2-loss(也叫平方损失函数): http://openaccess.thecvf.com/content_cvpr_2017/papers/Li_Mimic ...
- 配置tomcat的用户名和密码
<role rolename="manager-gui"/> <role rolename="manager-script"/> < ...
- 用javascript编写地区表单ES6
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- docker 导出导入
容器导出 docker export -o myname.tar 容器id 容器导人 docker import myname.tar httpd:v1
- Set集合之HashSet类
HashSet简介 HashSet是Set接口的典型实现,大多数时候使用Set集合时就是使用这个实现类.HashSet按Hash算法来存储集合中的元素,因此具有良好的存取和查找性能. HashSet特 ...