第二次总结

一.前言:

  第四次题目集总结,第四次题目集主要有三题,题目量不大。主要知识点是类的使用,主要有类的封装,抽象类,类的聚合,还有就是利用正则表达式对数据进行判定,就是对数据进行处理。总的来说题目难度有点小大。第五次题目集共5题,题目量适中,难度一般。因为问卷调查的原因,老师把难度调小了,适合大多数学生做。主要的知识点有数组的操作,还有就是主要排序算法,以及对于类的封装,还有Map List

Set接口。第六次题目集题量适中,主要考点有正则表达式,抽象类,接口,以及List这次题目的数目符合绝大多数的同学完成。难度适中,对于正则表达式的进一步强化。

二.题目设计与分析

1.日期类聚合设计的优劣比较

题目集四(7-2)这道题,当时我做的时候也觉得不是很简单,但是无奈这一次题目集,已经有一题不会了,如果这一题在不做的话,就没分了,只有慢慢的做这一题了,当时自己刚刚学类,对于类的调用还不是很熟练。当时我又在书上看来一下类的聚合。这一题就是一个类以另一个类作为属性继续使用上一个类中的方法,可以是代码更加简洁,避免了代码的复用,当然在做题的过程在也遇到了许多问题,比如经常会说this.year is null,数组越界等等的问题,但当自己把这么多的问题都解决下来以后,发现其实也就是很简单的,只有客服了困难才会体会了做完题的喜悦,希望通过自己的努力,自己以后可以做出难题。类图和圈复杂度分析如下。

 

 

 题目集五(7-5)这个题目与上题目集四(7-2)所求的结果是相同的,都是对于类的聚合的考查,求n天前n天后以及两个日期之间的差值,个人认为这题比题目集四简单,可能是自己对于知识点熟练了一些吧,也可能是自己刚刚解决了那个问题,对于这类的知识点更加得心应手了把,有了一定的基础,可能这也叫熟能生巧,拿到这个题目时候,核心算法自己已经知道了,然后我需要做的就是改变类,这题是一个类把其他的三个类作为属性直接调用,让不同的类执行不同的功能,这个题目我写的时候也没有这么多错误,几乎一气喝成,简单明了,的人认为这个题目比那个题目简单,因为类只调用了一次,不用一直点,我觉得这个至少代码量少一点。。类图和圈复杂度分析如下。

 

 

 对比这两题求日期方法,从圈复杂度上来看,两个方法差不多,从书写方面看我认为第二个更简单一点。第一个是类中调用另一个类,我认为修改不方便,第一个类违反了单一职责原则。第二个一个类就是一个类中的方法,便于修改,更加灵活。

2.三种渐进式图形继承设计的思路与技术运用

 题目四(7-3) 这个题目主要是考查类的继承,对于继承类,就是子类继承父类的办法,然后避免了代码的复用,做这一题的时候是这一次作业的最简单的一次,因为没有对比就没有伤害,其他题目太难了,所以拿到这题的时候,就是千万不能忽略一点,就是在子类构造器中添加一个输出语句,答案中有这个点,一定不要忘记这个点,还有就是对于子类中对父类方法的重写,我认为对于这一题一定要,注意判定输入值的条件,即半径或长和宽的长度要大于零。我认为可以采用封装性,即对类中的属性进行判断,然后直接调用求面积的方法。我认为这是对类的封装性的理解。类图和圈复杂度分析如下。

 

 

 题目集六(7-5)该题是图像的继承与多态,考察的是抽象类,首先这个题目是个50分,是我在题目集中最后写好的,怎么说那这题,这是我做的50分的题目中较简单的题目,其中体现了子类方法的重写,然后就是主方法的书写,我认为这道题目主方法比类更复杂一点,类中就是对于求面积的简单书写,刚开始我犯了一个错误,就是我以为输出面积只输出三种图形的面积总和,我只与测试点一对比因为一测试点巧了,每一个图形都只有一个,所以输出的面积只有三个,我就以为自己写的正确了。然后我就提交了,结果所有的测试数据错误全通过了,测试正确的点一个没通过,然后我又仔细看了看题目,原来要输出每一个图形的面积,如果一个图形一个面积都没有的话什么都不输出,改正后,结果就正确了,这是我写的最快的一次50分的题目,类图和圈复杂度分析如下。

 

 

 

 

 

 题目集六(7-6)改题目相当于题目5的超级简化,当然我是先做的这一题,刚开始做这一题的时候,其实也不是很难,这题是接口即多态性,这题就是类继承接口的方法,然后重写接口的方法,该子类中使用了封装性,即对子类的属性进行限定满足条件时即可正常使用,这样的目的是直接对数据进行判断。我认为这题的主要考点是接口即多态。我认为接口和抽象类的差别是子类可以继承很多个接口,而抽象类子类只能继承一个。类图和圈复杂度分析如下。

 

 

 

  

 

 

    总结这三题对于封装、继承、多态、我自己的理解把,封装:封装就是把属性和操作结合为一个独立的整体,并进可能的隐藏对象内部实现细节;继承:我认为继承的目的是减少代码的复用性,提高效率,但是要注意子类只能继承父类成员函数和成员变量;多肽:提高程序的抽象程度和简介性(减少大妈的复用)。总的来说就是说不同的类执行不同功能,改的话只需要改一部分类就可以了。

3.对三次题目集中用到的正则表达式技术的分析总结

正则表达式总结:简而言之就是用来检索、替换那些符合某个模式(规则)的文本,正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合, 组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。其实我们需要记住的是常用的元字符,常用的限定符等等。还有就是pattern和matcher的使用,其实也不是很难,理解之后对我们对输入的数据进行判断有很大的帮助。

4.题目集5(7-4)中Java集合框架应用的分析总结

 

 

集合框架Map介绍

方法归类:map集合中存放的都是一组组映射关系 key=value
(1)、增加
put(K key, V value)
putAll(Map<? extends K,? extends V> m)

(2)、删除
clear()
remove(Object key)

(3)、判断
containsKey(Object key)
containsValue(Object value)
isEmpty()

(4)、获取
get(Object key)
size()
values()
entrySet()
keySet()

小结:
Map Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合石线程同步的,jdk1.0,效率低 ;
HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是不同步的。将Hashtable替代;jdk1.2,效率高 ;
TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的键进行排序

题目集五(7-4)这个题目时统计Java代码中关键字出现的次数,刚拿到这题的候还是有点蒙的,后来我考虑的时用数组然后再用for循环,也有一点思路,后来看到结题报告,需要用容器来解决简单一点,这题我就去自学了Map,在学习的过程中,慢慢的对于容器有了理解,Map是一个键值对集合,存储键、值和之间的映射。 Key无序,唯一;value 不要求有序,允许重复。Map没有继承于Collection接口,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。Map 的常用实现类:HashMap、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap。最后还是成功的把这一题给解决了,当然这一题也少不了的时正则表达式中的replace 和split。圈复杂度如下。因为自己只用了一个类,所以没有类图。

 

 

 三.采坑心得

     1.首先说一点啊,就是做题目之前一定要先审清楚题目的需求,然后在看清楚题目,先分析在解题,简而言之,就是一步一步来,要先学会走在学会跑,不要一下就成个大胖子,学习更是这样。最最重要的是要看清楚题目的结题报告,看清楚需求,然后在解题。

     2.就是继承和多态,继承和多态是java应用非常重要的一个部分,有时候就算你能完整的运行一个程序也不见得这个程序是很好的,因为在大多数时候尤其是以后我们涉及到应用开发时候继承和多态就显得举足轻重。因为即使你自己写好一个代码,没有用继承和多态的话也没什么问题,只是别人不好理解罢了。不利于程序的拓展。所以我们要养成一个好的习惯将程序模块化,这就用到了继承和多态了,以前没学习之前我就觉得代码怎么短怎么舒服就怎么写最好,但是并不是,我们用java编程不仅仅局限于实现更重要的是拓展,这样才会有更好的进补。

    3.下次做题目的时候,一定要根据老师的解题报告来,看看老师像训练我们哪个知识点,然后再对一些不会的东西进行查资料,进行补充,如果没有新的方法,即使这题目你轻松的写了出来,也达不到让你进步的效果,使用一个你不会的方法会让你的知识点更加全面。

    4.完成任务时,或者做事情的时候一定要提前,不要等快结束了在开始,任何事情提前做都会达到事半功倍的效果,拖拉是一个很不好的习惯。

四.改进建议

 第四次题目集题目量不多,难度有点大,但是这是我认为这是对于我来讲,自己需要提高自己的效率。

 第五次题目集数量适中,难度也适中,但是我自己并没有得满分,这是我应该反思的,还要注意的是自己的效率,提高自己的能力。

第六次题目集数量和难度适中,我要注意的是细心,多看题目要求,不要非常急于求成。

 

 五.总结

    (1)个人总结

这三次题目,首先我学到了解决问题的方法,面对题目时要先看结题报告。更重要的是要细心,一定要仔细阅读结题报告。知识点方面,最主要的还是封装继承和多肽,然后还有就是对于类的继承(聚合)方面的问题,最后继承和抽象类等等。最重要的还是正则表达式。

(2)意见与建议

对于教师方面,我觉得老师的培养模式挺好,培养我们的自学能力,我觉得这个模式挺好。

  (3)作业方面

个人认为题目难度适中,题目也适中,符合我们学习

  (4) 实验与课上课下没有什么意见

我觉得模式挺好,可以培养我们的自主学习能力。

                                                                                                                                                                                                                                                                                           nchu 软件学院 202012班 王游

 

posted @ 2021-04-29 19:25  wyhl5  阅读(53)  评论(0)    收藏  举报