前言

以下内容是本周Bag代码的课后作业,要求是完成伪代码、产品代码和测试代码,为了书写方便我将伪代码以注释的形式写在了产品代码的后面

测试步骤

1.首先对Bag类引用BagInterface的代码进行复写

2.查阅读Baginterface中需要实现方法的要求,并查找ArrayList中方法的说明,写出如下代码

public class Bag<T> implements BagInterface<T> { //公共接口
ArrayList<T> lxr=new ArrayList<T>();//新声明一个变量 @Override
public int getCurrentSize() {//返回lxr的容量
return lxr.size();
} @Override
public boolean isEmpty() {//检查Bag是否为空 return lxr.isEmpty();
} @Override
public boolean add(T newEntry) {//增加一个可进行添加任何东西T的方法add
lxr.add(newEntry);
return false;
} @Override
public T remove() { return null;
} @Override
public boolean remove(T anEntry) {//移除anEntry
lxr.remove(anEntry);
return false;
} @Override
public void clear() {//移除列表的所有元素
lxr.clear();
} @Override
public int getFrequencyOf(T anEntry) {//返回一个元素在Bag中出现的次数
int a=0;
for(int i=0;i<lxr.size();i++)
{
if (anEntry==lxr.get(i)){
a++;
} }
return a;
} @Override
public boolean contains(T anEntry) {//如果此列表中包含指定的元素,则返回 true。
lxr.contains(anEntry);
return false;
}
}

3.编写JUNIT3测试代码

首先在Bag中放入6个元素,为了方便测试,删去最后一个元素

 Bag mybags = new Bag();
mybags.add("book1");
mybags.add("book2");
mybags.add("book3");
mybags.add("book4");
mybags.add("book1");
mybags.add("SB");
mybags.remove("SB");

然后测试getCurrentSize(),assertEquals(5,mybags.getCurrentSize());测试是否为5个元素。

测试bag中的内容是否为空,assertEquals(mybags.isEmpty(),false);

测试add方法,检查Bag中是否含有book1,assertEquals(true,mybags.contains("book1"));

测试remove方法,检查Bag中是否含有“SB”,assertEquals(true,mybags.contains("SB"));

测试GetFrequencyOf,检查book1出现的次数是否为2,assertEquals(2,mybags.getFrequencyOf("book1"));

最后测试clear方法

    mybags.clear();
assertEquals(true,mybags.isEmpty());



测试完成

我的码云Bag

测试代码

20162320刘先润第三周Bag类测试的更多相关文章

  1. MOOC C++笔记(三):类和对象提高

    第三周:类和对象提高 this指针 作用 this指针作用就是指向成员函数所作用的对象. 非静态成员函数中可以直接使用this来代表指向该函数作用的指针. 成员函数中默认有一个this指针指向当前对象 ...

  2. 20162330 第三周 蓝墨云班课 泛型类-Bag 练习

    目录 题目及要求 思路分析 遇到的问题和解决过程 代码实现及托管链接 感想 参考资料 题目及要求 代码运行在命令行中,路径要体现学号信息,IDEA中,伪代码要体现个人学号信息: 参见Bag的UML图, ...

  3. 2017-2018-1 Java演绎法 第三周 作业

    团队任务:团队展示与选题 团队展示 队员学号及姓名 学号 姓名 主要负责工作 20162315 马军 日常统计,项目部分代码 20162316 刘诚昊 项目部分代码,代码质量测试 20162317 袁 ...

  4. 20145213《Java程序设计》第三周学习总结

    20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...

  5. 20145304 Java第三周学习报告

    20145304 <Java程序设计>第三周学习总结 教材学习内容总结 1.定义类: 类定义时使用class关键词,建立实例要使用new关键词. 代码如下: /*定义类 书上例子 衣服的型 ...

  6. 20145330《Java程序设计》第三周学习总结

    20145330 <Java程序设计>第三周学习总结 第三周知识的难度已经逐步上升,并且一周学习两章学习压力也逐渐加大,需要更高效率的来完成学习内容,合理安排时间. 类与对象 对象(Obj ...

  7. 20145337《Java程序设计》第三周学习总结

    20145337 <Java程序设计>第三周学习总结 教材学习内容总结 类与对象 类与对象的关系:要产生对象必须先定义类,类是对象的设计图,对象是类的实例.我觉得在视频中对类与对象关系的描 ...

  8. 20145218 《Java程序设计》第三周学习总结

    20145218 <Java程序设计>第三周学习总结 教材学习内容总结 定义类 编写程序要产生对象就要先定义类.类是对象的设计图,对象是类的实例.类定义时使用class关键词,建立实例时, ...

  9. 《Java程序设计》第三周学习总结

    20145224-陈颢文 <Java程序设计>第三周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字,要对类中变量(值域成员/对象数据成员)行类型声明. class ...

随机推荐

  1. MFC与Webbrower交互(通过JS)

    最近修改老旧的MFC项目,用的网页做界面,和HTML交互采用的是COM方式,繁琐,丑陋又性能低,于是考虑利用js来进行界面交互,查了一天的资料,现在整理如下,供后来需要的人参考,虽然大概几乎不会有人用 ...

  2. 自定义JS乘法运算误差解决!

    在实际开发中遇到这样一个乘法公式:数量*单价=总价 像这样的浮点数列子:200*8.2,JS算出的结果是: 像这种浮点数的乘法计算就会有误差,我们需要得到准确的值应该是:1640,与我们后台C#计算结 ...

  3. MySQL新建用户与授权

    一.登录root用户 [root@iZm5e9gg1p5y1co0usac2cZ webapps] # mysql -uroot -p 二.新建用户 mysql> create user '; ...

  4. Unity3D基本操作教程

    物体操作图文教程 一些游戏资产文件 拖进游戏里 像这样,就可以上坡了 修改箱子的位置 完成 机械臂开始运作 游戏通关,教学结束

  5. Xampp apache与mySQL开不了 解决办法

    Xampp安装后,打开Xampp control panel. 点击Apache对应的Start,开不了.原因是系统的服务占用了80端口,所以要么结束系统服务,要么修改apache端口. 个人比较喜欢 ...

  6. linux同步与通信

    这几天读完了UNP v2,对进程间通信与同步的方式有所了解,现对主要的知识点总结如下: 根据出现的历史,先有的管道,FIFO,信号,然后是systemV IPC,再是后来的Poxis IPC,syst ...

  7. 详解apply

    先谈this 关于this的指向就不细说了,网上有无数博客以及you don't kown js这类书讲的已经很详细了这里就不炒冷饭了. 举几个简单的例子 function foo() { conso ...

  8. 微信小程序调接口常见问题解决方法

    第一次调接口时遇见的bug. 注意:接口的域名不能使用 IP 地址或 localhost,且不能带端口号: 微信小程序如何调接口? wx.request({ url: 'http://miniapp/ ...

  9. IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除

    1. 修改Maven的Settings.xml文件添加如下内容 <profile> <id>jdk-1.8</id> <activation> < ...

  10. mac安装tensorflow

    tensorflow简介 TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数 ...