BLOG-3
(1) 前言:
这阶段作业情况较差,完成题目艰难,得分很低。电信系列和点线系列的题目迭代关系非常强,两个系列的题目都是在之前的先发布的题目上修改或者增加功能,难度较大,得分较为不理想,
(2) 设计与分析:
这几次的作业难度不断爬升,虽然让我们完成作业的难度加大但是能我们更加苏联的掌握题目,对于面向对象的封装性、继承性与多态性也是这次作业让我更加了解这三大特点。对于近期的电信系列题目,题目中都给出了类图电话和座机两个部分的题目可以说在给出类图后得分情况依然很不理想,一方面题目确实较为复杂,需要花费一部分时间在理解上,而我在编写的时候就出现过几次题目中的冠希还没有完全理解到位就上手,所以在第三次短信系列的题目中我就变得谨慎起来,但依旧没有将整个题目完成,也说明自己在这方面能力的不足
(3) 采坑心得:
经过这几次系列的题目的锻炼让我认识到OO编程思维类似于人类思维,利用类和对象来解决问题,这两个概念编程,是以“对象”为中心的编程思想。其次这几次课程题目 一复杂起来代码的编写过程就变的异常的曲折,究其原因一方面知识点掌握的不狗牢固,还有在题目设计之初没有完全理解这其中的逻辑结构,也就奠定了接下来的编写会变得很困难,但是测试可以帮助我更早的发现问题,这样一来就可以在很大的程度上要求在编写代码之前先写测试,这样可以强制你在写代码之前好好的思考代码(方法)的功能和逻辑,否则编写的代码很不稳定,那么你需要同时维护测试代码和实际代码,这个工作量就会大大增加。因此在极限编程中,基本过程是这样的:构思-> 编写测试代码-> 编写代码-> 测试,而且编写测试和编写代码都是增量式的,写一点测一点,在编写以后的代码中如果发现问题可以较快的追踪到问题的原因,减小回归错误的纠错难度。
测试可以让我们及时的发现自己代码出现的问题从而可以针对性的解决他们,这就避免了在代码整体完成的差不多的情况下出现了错误而回溯也无法发现是哪一部份的代码出现了问题。测试是对代码结果的的检验设计测试首先要保证 严谨性同时要兼顾简便性。首要保证语法是正确的。才能进行下一步判断程序是否能实现题目要求,实现所需功能。保证你本次的代码能解决相应的问题,能运用到我们的现实生活中的一些地方。
通过多次作业练习总结以下几大原则自己的认识:
单一职责原则:单一职责是对某一个类来说的,意思是类只能有一个职责,只负责干一件事情。专心与一件事能够完成的更好,在我看来,单一职责可以提高程序的可读性,可以减少程序的复杂度,减少改变程序时所带来的影响。比如如果一个类可以同时拥有A和B两种职责,当我们需要更改A的功能的时候就可能对B造成影响从而导致B的功能无法正常使用,这样一来在需要修改代码的时候就会很麻烦,而将一个个复杂的问题简单化以后,就可以变得很容易于代码的重用。
开放-封闭原则:软件实体应该扩展开放、修改封闭。对于扩展是开放的 Open for extension。这意味着模块的行为是可以扩展的,当应用的需求改变时,我们可以对模块进行扩展,使其具有满足那些改变的新行为,这样一来当我们需要的时候我可以随便改变其行使的功能。对于更改是封闭的 Closed for modification。对模块行为进行扩展时,不必改动模块的源代码或者二进制代码,模块的二进制可执行版本,无论是可链接的库、DLL或JAVA 的.jar文件,都无需改动。
其次,我还了解到正则表达式是一种可以用于模式匹配和替换的强有力的工具,通过本学期的PTA作业学会了正则表达式的使用。可以看成是多个字符的组成规则,正则表达式在字符串处理上发挥着很大用,能够帮助我们完成很多事情。其次对于面向对象三大技术特性之间关系的理解:对于面向对象的封装性、继承性与多态性也是本课程的作业让我更加了解这三大特点。而更加深入的了解面向对象的封装性、继承性与多态性这三大技术特性我发现对于封装性来说它可以被看作代码和数据的保护伞,这具有关键的作用,可以保护题目不被轻易的查看访问如果一定要求的话就必须通过其特别设置的方法。在继承关系中,父类一般具有所有子类的共同特性并且可以对父类的方法进行扩展。在多态的机制中,父类通常会被定义为抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体过程,通过继承父类来实现,而比抽象类更方便的是将抽象类定义为接口。
(4) 改进建议:
对于本学期java课程题目中,最有影响深刻的当属点线系列和电信系列,尤其时点线系列,在题目中包含很多较为复杂的数学关系在题目中,先不说代码实现,但是数学方面的用起来都很僵硬,频繁出错,
(5) 总结:
经过本学期Java课程的学习让我更加了解面向对象的思想,并用其来解决题目。学习的时间越长越容易发现这是一门不算特别难懂的课程,但是即便你掌握了知识点但并不代表着需要这些知识的时候你就一定会用,不同的知识点不同的用法光是理解他们就要花费很多时间与精力更何况跟要的是熟悉的运用他们。而讲到锻炼运用他们的能力无疑是写跟多练习比如老师上课的时候讲的代码在课后一定要花点时间去重新敲一遍,对于代码这种东西越敲只会让我们更熟悉,所以说多敲代码才能更好的去理解代码,掌握代码,运用代码。而对于作业由于自己对知识点掌握的不熟练,独立完成的难度越来越大。但经过这个学期的作业锻炼下来我也有自己的收获。比如说,大部分题目都是 将程序分成多个部分进行的,而类方法的调用则是让程序的每个部分变得的根据更加清晰明了,这一系列的作业锻炼下来让我们对于类的理解用法又来跟多的认识 。但是随着题目难度的逐渐加大,所花费的时间也是越来越长,完成所有的作业跟是难上加难,况且到最后的学习上课老师讲的知识点都难以理解跟别说熟练的运用他们了 。而后阶段的作业都需要花费跟多的时间去研究题目所需要的一些知识点,然后需要不断的去网上查阅资料与同学之间讨论才能的到完成作业的一点点思路,但是有了思路并不能顺利的完成题目,是因为前面我提到的对于后阶段的知识点掌握的差,尽管知道是怎么一回事但就是写不来。很多时候无法通过所有测试点。尽管完成作业的难度很大但是越到后面对以前的知识又会熟练很多,这样一来主要怕自己多花时间在上面还是能够学的懂,自己也要有学习的动力和自信。学编程需要稳扎稳打一步一个脚印,要及时发现自己的错误并改正自己。
浙公网安备 33010602011771号