242
社区成员




本人通过Main类进行顶层设计,而Advendure类负责重要的内容处理,Bag和Shop类各司其职,底层有装备,药水瓶,食物等类。各个类之间充分封装,所有变量均用private保护并设置了访问方法。
最后一次作业适当重构了Adventure类里的remove方法
通过在雇佣者的Adventure类里overattack()方法加入相关判定并调用被雇佣者的givemoney()方法实现支援系统
通过Bag类调用背包主人master的remove()方法实现指令22
通过Main类直接调用Shop类里的trytobuy()方法实现指令23
本人在背包概念引入后即设置了Bag类,并在战斗模式引入后设置了Dayattack类。各个类之间的有序配合满足了面向对象原则、单一责任原则,极大地提高了代码的可扩展性,降低了维护难度。
比如在实现hw7的type22指令时,本人直接在Bag类里新增了sellall()方法
public void sellall(Shop shop) {
long ret = 0;
for (Integer key : listbtt.keySet()) {
removeInt.add(key);
}
for (Integer key: removeInt) {
master.remove_bottle(listbtt.get(key).getID(),shop,false);
}
removeInt.clear();
for (String key:listedu.keySet()) {
removeStr.add(key);
}
for (String key:removeStr) {
master.remove_equ(listedu.get(key).getEquID(),shop,false);
}
removeStr.clear();
for (Integer key: listfood.keySet()) {
removeInt.add(key);
}
for (Integer key: removeInt) {
master.remove_food(listfood.get(key).getFoodID(),shop,false);
}
removeInt.clear();
}
写好junit单元测试时检验代码可靠性的重要方法,也是进行团队写作的必备技能,其价值远不止是完成一个测试点,而是提高了代码人的综合素养!!!
c语言是面向过程的,Java是面向对象的,一开始并不是很能理解面向对象的含义,经常在代码里新new了许多对象还以为它们是同一个对象(悲),但是之后再de这些bug的过程中,我逐渐发掘了类和对象的区别,就像搞明白地址和变量的区别一样。
Java的基本语法和c没什么区别,但是Java有许多超级便利的库方法,这就使得用Java处理链表等数据结构比用c些简单的多!
吴老师上课真的好认真,课件很好,讲到激动还会热情地写板书哈哈哈。助教们真的很辛苦,不仅要回答这么多学生的问题,还要做复杂的数据库测试点,真的很感动。
我感觉这门课程很好,没有oopre都没法想象我该怎么去上oo正课……建议的话感觉可以教学生怎么造测评机,并在测试点里面假如对测评机的测试。