在第三次博客作业中,包含到题目集7~9。这些题目集中的题目,有难有易,难度总体适中,每个题目集有1~2个题目,题量也比较适中。考察的知识点大多为类的相关,类的创建,继承与聚合,掌握类的继承、多态性使用方法以及接口的应用。
。对我而言,类的设计应该算是一大难点了。但其中还包括了一些基础的知识点,这部分就相对来说比较简单了。
‘
话不多说,先上两者的类掌握类的继承、多态性使用方法以及接口的
左图为题目集(7-1)的类图 右图为题目集5(7-2)的类图
可以看到,左图的各个类属于层层继承的关系的,各个类之间的关系相比于右图的来说更为紧密,但麻烦的一点就是,如果你要在 Shape 类中引用别的类中的属性,需要一层一层的通过方法才能调用出来。而相比于右图 类之间的关系相当于平行,在 shape 类中引用其他三个类中的属性都是比较简便的。左右两图中各个类的方法函数都是差不多的。两者的区别就是类的设计方法不同,在我看来,依照右图写出来的代码更加简洁。我会选择右图。
先上两者类图
题目集8主要考察的知识点是类的继承,这应该是最基础的继承关系了,还考察了方法的重写,将父类的 getArea 方法在子类中进行了重写,要做出这题没有难度。题目集6(7-5)主要考察的知识点是抽象类的应用,在题目中 Shape 类并不是来描述对象的,所以我们可以将它抽象化。抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。题目集6(7-6)主要考察的知识点是接口的定义与使用,接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。这三题将继承多态以及接口大致进行对比以及给了我们一个更直观的了解关于这三点的不同。
(抽象类)
(接口)
抽象类与接口的使用上的区别
三次题目集中的正则表达式技术的运用反而是从难到易,题目集4(7-1)属实被难倒了。虽然老师上课讲了正则表达式,但无奈跟不上,导致第一次正则表达式的作业未完成。自此,我开始上网查资料,好好改造,重新自学正则表达式,后面的题目都拿下了。总而言之,关于正则表达式,只要熟悉各种符号的意义,其实并不难。
这道题目对于我来说应该是最难的一道题目了,由于自身的能力问题,题目截止前没有得出正确答案,无法给出一个分析,认识到了自身的知识还不够丰富,下次会更加努力的。
在完成这三次题目集的过程中遇到了不少麻烦,这里挑几条出来说一说,分享给大家,与大家一起交流学习。
1.首先是题目集中关于日期的题目,其实主要就是考虑一些特殊情况,例如在计算日期的前一天或者后一天时,闰年和平年的情况以及二月的天数的变化,以及判断日期是否合法。在写代码的过程中,如果能够提前分析这些特殊情况可以让我们事半功倍,并且错误也会减少。可以得出,在未来做一个题目或做一个项目时,要考虑清楚题目或者项目的需求以及要求。毕竟谁也不想满怀信心的提交代码,之后又头疼地改bug。所以,我们要养成分析题目的良好习惯。
2.在关于数组排序的题目中,由于有段时间没怎么使用数组的排序,导致写这几道题目时,浪费了不少时间,例如, Arrays.sort(数组名); 方法。我写成了这样 数组名.sort(); 真是一个天大的笑话\(^o^)/~,这也提醒我要多复习前面的知识,切记不可以囫囵吞枣,急于求成。这样才不会今后的代码编写过程中浪费不必要的时间,造成不必要的错误。
3.题目集5(7-4)这个难题体现出了自学的重要性,如果自学到位,我相信多多少少写的出几点的。也告诉我们编程,不仅仅是靠课堂上学习的知识,上网百度、参考其他人分享的知识也是学习编程中不可缺少的一部分。学习编程是不能闭门造车的,编程语言不断在进步,课本上的内容是死的,我们需要利用网上的资源来跟上编程语言的发展。
虽然编写的代码大多数都能通过PTA的测试点,但其中还是有一些问题存在的。
我感觉我的主要问题就是 main 函数中的代码行数过多,例如,日期的各种功能的选择,我将这个选择功能写在了 main 函数中。应该可以在写一个选择方法,让 main 中的代码更加简洁、明了。
到了激动人心的总结时刻了,这又是我编程学习的一个进度点,也是这次blog作业的总结。回看自己以前写的代码,实在不堪入目,不过这也让我意识到,我实实在在的在进步,这是让我十分开心的,并且让我找到将编程学习下去的动力。
1.感觉到自己学到了很多东西,从刚开始连创建 Scanner 类对象都要百度,到后面类的继承,看着自己写的代码越来越长,越来越复杂,感觉到自己的能力也越来越强。
2.自己还是需要去理解很多概念,很多东西我其实都会用,但让我讲出来却是十分难的。
3.自己还需多空出时间来学习,很多题目中涉及的知识点老师不会讲的很详细,自学能力还是要加强。
4.对老师的建议就是希望在每次题目结束后,老师能给出一份正规的答案供大家参考学习,我相信这不仅可以方便同学们的学习,而且也可以规范大家的代码格式。众所周知,代码规范性是以后工作中重要的一个考察点。有一个良好的编写习惯,能为以后的找工作避免许多不必要的麻烦,同时也可以在招聘中为自己加分。