20145330《Java程序设计》第二次实验报告
20145330《Java程序设计》第二次实验报告
实验二 Java面向对象程序设计##
实验内容##
1.初步掌握单元测试和TDD
2.理解并掌握面向对象三要素:封装、继承多态
3.初步掌握UML建模
4.熟悉S.O.L.I.D原则
5.了解设计模式
实验要求
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2.完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法;
TDD##
实验步骤
- 明确当前要完成的功能,记录成一个测试列表
- 快速完成编写针对此功能的测试用例
- 测试代码编译不通过
- 编写产品代码
- 测试通过
- 对代码进行重构,并保证测试通过
- 循环完成所有功能的开发
1.创建test

2.输入源代码
package com.example.junit;
/**
* Created by lenovo on 2016/4/12.
*/
public class MyUtil {
public static String percentage2fivegrade(int grade)
{
if((grade<0))
return "错误";
else if (grade<60)
return "不及格";
else if (grade<70)
return "及格";
else if (grade<80)
return "中等";
else if (grade<90)
return "良好";
else if (grade<=1000)
return "优秀";
else
return "错误";
}
}
3.输入测试代码
package com.example.junit;
import org.junit.Before;
import org.junit.Test;
import junit.framework.TestCase;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
/**
* Created by lenovo on 2016/4/12.
*/
public class MyUtilTest extends TestCase {
@Test
public void testNormal() {
assertEquals("不及格", MyUtil.percentage2fivegrade(55));
assertEquals("及格", MyUtil.percentage2fivegrade(65));
assertEquals("中等", MyUtil.percentage2fivegrade(75));
assertEquals("良好", MyUtil.percentage2fivegrade(85));
assertEquals("优秀", MyUtil.percentage2fivegrade(95));
}
@Before
public void setUp() throws Exception {
}
}

4.进行测试直到测试结果为绿条成功

问题与解决方法
- 问题:输入完毕后下划线有红色部分存在语法错误
- 方法:MyUtil类还不存在,类中方法也不存在,我们在目录新建一个MyUtil类,即可实现相关方法
练习内容
- 写一个类测试编写的复数类的方法
- 构造函数,将实部,虚部都置为0
- 构造函数,创建复数对象的同时完成复数的实部,虚部的初始化
- 设置实部,设置虚部
- 复数相加
- 复数相减
- 复数相乘
- 源代码
public class Complex {
private double realPart;
private double imaginPart;
public Complex(){
double realPart;
double imaginPart;
}
public Complex(double r,double i){
double realPart;
double imaginPart;
this.realPart=r;
this.imaginPart=i;
}
public double getRealPart(){
return realPart;
}
public double getImaginPart(){
return imaginPart;
}
public void setRealPart(double d){
this.realPart=d;
}
public void setImaginPart(double d) {
this.imaginPart =d;
}
public void ComplexAdd(Complex c){
this.realPart+=c.realPart;
this.imaginPart+=c.imaginPart;
}
public void ComplexAdd(double c){
this.realPart+=c;
}
public void ComplexMinus(Complex c){
this.realPart-=c.realPart;
this.imaginPart-=c.imaginPart;
}
public void ComplexMinus(double c){
this.realPart-=c;
}
public void ComplexMulti(Complex c){
this.realPart*=c.realPart;
this.imaginPart*=c.imaginPart;
}
public void ComplexMulti(double c){
this.realPart*=c;
}
}

- 测试代码
import junit.framework.TestCase;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Created by lenovo on 2016/4/13.
*/
public class ComplexTest extends TestCase{
Complex c1=new Complex(3,5);
Complex c2=new Complex(3,5);
double a=5;
@Test
public void testComplexAdd() throws Exception {
c1.ComplexAdd(c2);
assertEquals(6.0,c1.getRealPart());
assertEquals(10.0,c1.getImaginPart());
}
@Test
public void testComplexMinus() throws Exception {
c1.ComplexMinus(c2);
assertEquals(0.0,c1.getRealPart());
assertEquals(0.0,c1.getImaginPart());
}
@Test
public void testComplexMulti() throws Exception {
c1.ComplexMulti(c2);
assertEquals(9.0,c1.getRealPart());
assertEquals(25.0,c1.getImaginPart());
}

- 运行结果

UML##
在Umbrello中UML图是可以转化成Java代码的,有Java代码也可以生成UML图。

心得体会
学会了单元测试觉得方便了很多。它是一种验证行为,程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供支援。而且它对代码的重构提供了保障,这样我们就可以更自由的对程序进行改进。
单元测试还是一种设计行为,编写单元测试使我们观察思考,使我们更好地把程序设计成易于调试和可测试的
通过这次试验,我有更加深入的学习了Java,并逐渐可以将它合理的运用。
工具##
1.JUnit
2.umbrello
3.StarUML
20145330《Java程序设计》第二次实验报告的更多相关文章
- java程序设计第二次实验报告
北京电子科技学院(BESTI) 实验报告 课程:数据结构 班级:1352 姓名:何伟钦 学号:20135223 成绩: 指导教师:娄嘉鹏 实验日期: ...
- 20145330《Java程序设计》第一次实验报告
20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...
- 20155339《java程序设计》第一次实验报告
20155339<java程序设计>第一次实验报告 实验一 java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序: 2.使用IDEA编辑.编译.运行.调试java程 ...
- 20145320《Java程序设计》第一次实验报告
20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...
- 20145240 《Java程序设计》第一次实验报告
20145240 <Java程序设计>第一次实验报告 实验内容 一.命令行下java程序开发 1.建立Code目录,输入mkdir 20145240命令建立实验目录,并使用dir命令查看目 ...
- 学号20155311 2016-2017-2 《Java程序设计》第一次实验报告
课程:Java程序设计 实验名称:Java开发环境的熟悉 实验目的与要求: 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验. ...
- 20145216史婧瑶《Java程序设计》第一次实验报告
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145238-荆玉茗 《Java程序设计》第一次实验报告
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145235 《Java程序设计》第一次实验报告
实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JVM.JRE.JDK的安装位置与区 ...
随机推荐
- C# XML操作
一.简单介绍 using System.Xml; //初始化一个xml实例 XmlDocument xml=new XmlDocument(); //导入指定xml文件 xml.Load(path); ...
- WPF中加载高分辨率图片性能优化
在最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: < ...
- java BigInteger使用
虽然说我不怎么会用java写一些东西,但是java里的biginteger我还是很喜欢的.这个类解决了,我们在其他很多语言中遇到的问题:大数.比如在C++中我们要计算一个大小超过long long的数 ...
- barabasilab-networkScience学习笔记3-随机网络模型
第一次接触复杂性科学是在一本叫think complexity的书上,Allen博士很好的讲述了数据结构与复杂性科学,barabasi是一个知名的复杂性网络科学家,barabasilab则是他所主导的 ...
- 从DataReader中手动串行化JSON
void WriteDataReader(StringBuilder sb, IDataReader reader) { ) { sb.Append("null"); return ...
- Confluent Platform 3.0支持使用Kafka Streams实现实时的数据处理(最新版已经是3.1了,支持kafka0.10了)
来自 Confluent 的 Confluent Platform 3.0 消息系统支持使用 Kafka Streams 实现实时的数据处理,这家公司也是在背后支撑 Apache Kafka 消息框架 ...
- 【POI】使用POI处理xlsx的cell中的超链接 和 插入图片 和 设置打印区域
使用POI对xlsx中插入超链接和 插入图片 package com.it.poiTest; import java.awt.image.BufferedImage; import java.io.B ...
- phpstorm的安装、破解、和汉化
1.去官网下载最新版安装. 2.完成选择购买软件,下面选择中间那个账户方法License server,把这条链接复制下去:http://idea.qinxi1992.cn 3.下载汉化包resour ...
- 大端模式 VS 小端模式
简单点说,就是字节的存储顺序,如果数据都是单字节的,那怎么存储无所谓了,但是对于多字节数据,比如int,double等,就要考虑存储的顺序了.注意字节序是硬件层面的东西,对于软件来说通常是透明的.再说 ...
- AndroidTips:selector的disable状态为什么无效?
正确的姿势: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android=& ...