自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 BUAA_OO_UNIT4及课程总结

为了提高代码的模块化、标准化,在为方法分配功能时,尽量降低功能的复杂性,每个方法仅实现一个基础功能。相对来说,我在这个单元的架构设计最为清晰。在做作业时,已有的代码中并没有能表示书本迁移动向的属性,因此,为了满足状态图的需求,在各个类中添加了所需属性,仅为了表示动向,没有什么实际用途。此时,通过创建UML类图,初步描绘自己的设想,厘清各个可能需要的类的功能。通过多态,我们可以编写更加灵活和可复用的代码,因为我们可以将不同的对象视为相同的类型(接口或基类),并调用它们的方法,而无需关心它们的具体实现。

2024-06-16 17:07:31 507

原创 BUAA OO Unit3

这里有一种比较优秀的数据结构的选择,即优先队列,它能以O(1)的复杂度查询所需有限级(排名)的元素,这使得重新查找变得更快(O(n) --> O(1)),但美中不足的是,它的删除操作的时间复杂度是O(n),略高。但是,对于课程组提供的src中的文件进行的测试都是黑箱测试,代码不透明,所以在数据构造时要十分全面,这也是要求边界数据的原因,单纯的随机数据很难覆盖这类型的数据。关于Junit测试,我的感受是,由于本单元的代码实现有JML语言的规范,对方法的测试代码的编写其实就是对JML语言的翻译。

2024-05-16 20:48:17 344

原创 BUAA_OO_Unit2

经过分析后,我发现这是因为,对于电梯等待,我是通过对于电梯等待队列waitingQueue使用wait()方法实现的,但是电梯判断结束的条件中有对其他实例的调用,这导致waitingQueue未被唤醒,所以那些电梯仍处于等待,不能结束。首先,我在A、B类型的电梯中都存储了换乘楼层。对于每一对电梯井中的两台双轿厢电梯,给他们分配了一个共同的锁,当一部电梯到达换乘楼层后,它会占有该锁,此时如果另一部电梯试图进入该楼层,则会陷入等待状态,直到电梯离开换乘楼层,并释放锁后,进行notify,唤醒这部电梯。

2024-04-19 23:04:47 637 1

原创 OO_Unit1

自定义函数时读取函数名称与函数的表达式,生成FunDefine实例;

2024-03-23 19:36:51 952

原创 2023 BUAA OOpre 的一点点冒险经历总结

在程序出现输出结果出现问题的时候,通过对某一些相对较为复杂的方法进行测试,有效提高了寻找bug的速度。通过定义父类,再在其基础上定义子类,使代码的逻辑性增强,同时能简化一些操作,如药水进行操作,就无需判断其具体是哪种药水,仅需知道它是药水,并对药水类进行操作即可。把相同的方法全部封装,把相似的方法集中到一个接口中,再加以合适的命名,令代码的可读性产生质的飞跃,降低修改难度。在oopre这半个学期的学习中,我基本上是根据老师上课讲的内容,边学习,边在网络上搜寻一些不理解的内容,摸索着前行的。

2023-11-07 13:15:56 56 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除