作业分析


   作业总结  这几次作业主要涉及正则表达式,类的继承、多态、封装,抽象类、接口以及类的重写、向下转型和向上转型,用到的知识点多且复杂,需要对知识点有较深的了解并且能够熟练运用,否则难度会比较大。虽然每次只有三个小题,但是每个小题都彼此关联,如果不能顺利完成之前的题目则会对后面的题目造成影响,甚至后面的题目根本无从下手。此外,pta第五次大作业又与前两次作业密切相关,是前两次作业的升级版,复杂程度和难度都直线攀升。而且即使你之前的作业完成得很好,也不能保证会做,因为这些题目并不是完全只靠好的编程能力就能够解决,它还要对一些数学知识有一定的了解。      第四次大作业

     第四次大作业有三道题目,分别是蛟龙号提取数字字符并计算它们的和,四边形判断凹凸性、被直线分为两个三角形的面积、点是否在四边形的内部,银行业务类。第一题只需要使用matcher.find()去寻找格式为\\d+的子串即可,或者使用split(”\\D+“)来分隔数字字符,总体难度偏易。第三题银行业务类要实现存款和取钱以及显示余额,功能虽多但都是纸老虎,只需在银行类中写几个方法就可以了,稍微了解面向对象编程的人都能够轻松解决。最难的是四边形,这道题考察的应该是编程思维和对类的设计。如果没有提前对类进行设计的话,代码会特别长并且有许多方法,看起来繁杂,让人失去阅读的欲望。我们要先搞清楚四边形有哪些属性和状态,诸如点、线、平行、点距等,接着我们可以以此来设计我们的类,通过这些属性和方法再来构建更复杂的类。

  

     第五次大作业

     第五次大作业的题目与五边形有关,和四边形相比,难度骤然提升,而且还集合了四边形和三角线,如果之前的题目都一头雾水的话,那这道题简直就是降维打击,对思维以及对知识的运用都是极大的考验。不仅考察个人的编程能力、思维,还要从长题干中提取关键信息。不过五边形和四边形有相似之处,有许多方法可以复用。在学习了继承后,我们可以创建多边形父类,这可以大大简化代码。如果从涉及的知识点来说并不多,无非就是继承、容器之类的知识点,我觉得这道题的难点在于需要大量分类讨论,需要考虑点的顺序、重合、线的重合、相交判断、面的位置关系等,很难完全分类,因此提前规划至关重要,不然在编写代码时发现问题可能需要修改大量代码。

     期中考试

   期中考试第一题是根据类图来对类进行设计,由于只需将题目的要求逐一转换成代码,因此难度偏易。第二题使用抽象、继承和多态来对第一题进行重构,和第一题类似,在原有的代码的基础上添加一个抽象类,并添加几个子类,题目已经把要求和怎么操作都清晰地告诉我们了,只需要按照它所说的进行编写就足够了。第三题创建ArrayList容器,ArrayList是含有add()和remove()方法的,这道题是让我们自己实现这两个方法,在学习c语言的时候就已经实现过这些功能。综合来看,这次期中考试难度中规中矩。

     踩坑心得

  提交代码的时候要注意把所有import语句都复制进去。在做题之前一定要先设计好大致的结构,不要着急上手,要明确类的属性、方法,类与类之间的关系等,如果一开始的方向就错了,要进行修改会很困难。

   改进建议

       四边形那道题可以运用继承来简化代码,同时还能够提高代码的复用性,便于添加新的代码。

   总结

   通过这几次作业,我知道了自己和别人之间的差距有多大,也知道了我还有很多知识还没有完全掌握。我学会了使用叉积来判断两条线段是否相交,学会了使用ArrayList以及它的add()、remove()等方法,知道如何使用继承和多态以及instanceof运算符。我对接口和抽象类的认识还不够,在今后应该加强相关的练习。我认为作业难度应该循序渐进,还有就是应该增加难度较低的题目达到巩固的目的。