270
社区成员
发帖
与我相关
我的任务
分享
advId,hitPoint,atk,def,mana,money。items,usables,bag,employees。其中,items表示拥有的物品,usables表示拥有的可在use操作中使用的物品或技能,bag表示携带的物品,employees表示自己所有的下级。addBottle();addEquipment();learnSpell();removeItem();takeItem();use()//作为发起者时;changeAttribute()//作为目标时;fight()//作为目标时;acquireMoney();buyItem();notifyEmployees();aidEmployer()//援助系统;addRelation();removeRelation();参数:equId,ce;
下设多个子类,具体关系见上方图表。
参数:effect,botId;
下设多个子类,具体关系见上方图表。
参数:speId,manaCost,power;
下设多个子类,具体关系见上方图表。
bottlesNum;bottleBags,weapon,armour;findBags();findBagBottles(),hasBeenTaken()//判断是否已经被携带,hasBeenTakenBottle();removeBag();addBags();createBottle(),createSpell(),createEquipment(),createItem();
input,pos//记录当前处理位置,curToken;getID(),next(),peek();
loadRelation()方法中的root节点创建,把正则表达式形式的关系转化为链表形式,供Execution类进一步处理。advId;ArrayList<AdventurerNode> relationTree;loadRelation(String s),parserAdventurer(Lexer lexer);
execution()即可实现功能。参数:adventurers();
execution(int n, ArrayList<ArrayList<String>> inputInfo);addAdventure(),addRelation(),loadRelation(),removeRelation();addBottle(),addEquipment(),learnSpell(),removeItem(),takeItem(),buyItem();use(),fight();
notifyEmployees()//通知下级,addHitPoint();
aidEmployer()//帮助上级;
takeItem(),removeItem()方法影响的对象。use()方法影响的对象。addRelation(),removeRelation()等方法进行了方法重写,使方法可读性更强。学习OOPre的核心是思维从“步骤化”转向“模块化”。面向过程需逐句拆解流程,耦合度高且难维护;面向对象通过封装、继承、多态将功能抽象为类,代码复用性与扩展性大幅提升。这种转变让我学会从“解决问题”到“设计实体”,编程更具逻辑性与可维护性,也更贴合复杂系统开发需求。