前言:关于此次三次作业,相比于前3次难度着实高了一个档次,第五次作业,虽然对于工具类没有很高。但是第一题的复杂程度很高,对于正则表达式有很高的要求,需要使用很多正则表达式的方法,而且不能有一处错误,对代码的质量要求很高。而在第六次和第七次作业中,就需要使用工具类了,还有链表的处理,在链表的处理上,出现了多种工具类,对链表进行处理。还有链表本身,就只是一种类,在传入数据和传出数据的过程中,就需要一点方法。同时,在第六次作业中,仍然需要使用正则表达式,而且要求也不低。

过程总结:在第五次作业中,首先涉及到继承,在第五次作业中,需要对继承使用,图形的继承是一个很好的例子,让因为,这个很容易理解,并且对于每一个图形,他们本身的固有属性,都是对一个图形的描述,给了这些数据,一个类也就基本确定了是什么样子。第五次作业中,最难的应该是正则表达式,这个对于一个人的思维要求很高,突出了一个问题,设计性。如果你想要有这个思维,需要经过不断的练习,这个就需要时间练习了。而在第六次作业中,主要的难点还是在于正则表达式,与第五次不同,这次还需要使用工具类。工具类的目的是为了修改数据,而正则表达式的使用是一个判定方法。正确判断后,就需要使用工具类进行修改,最后输出。第六次作业,在图形的继承,增加了多态,让继承的方法增加了难度。在第六次作业中,就出现了链表,也就是arrarylist。Java中的链表,相对于C语言中,更加简单,但是是两种不同的格式,可能Java中的链表与数组有几分相似,但是里面储存的数据类型并不相同。添加方面,这个类具有自身的方法,还有很多方法,是这个类本身具有的。三次作业之间的知识迭代关系上,第五次作业更加偏向于认识,面对对象中的许多技术,对于使用上面的要求,并没有后两次高,但是代码量并不比后两次小。后两次作业在类的使用上,具有更高度要求,有继承,有工具类的使用,有类的多态,相比于第五次,具有更复杂的代码。这几次作业中涉及的正则表达式,是C语言中没有的。也是个很好用的类,但是如果是设计匹配器的话,还是有一点难度的。对于面向对象的封装性、继承性与多态性三大技术特性,对象的封装性,就是把对象的属性,行为进行封装,载体是类,一个类,也就约是一个对象,对于每一个对象都进行封装,让每一个对象具有自己本身的属性,这样更加利于设计,在往后的软件设计中,对象对应一个软件的功能,让对象封装,就是让软件的每一个功能独立,使得他们的功能不会相互影响。在对象的继承上,具有很多种继承方法,有直接继承和间接继承,一般情况下,不会采用直接继承,而是采用间接继承,因为如果直接继承,在日后对代码的修改上,父类代码的修改,会严重影响到子类。从而加大了软件的维护成本,最好采用间接继承,实现低耦合。这样,如果父类代码被修改,子类代码也不需要修改很多,从而降低维护成本。多态性的使用,就需要使用抽象类了,在多态性的使用上,父类与子类之间,不具有很大的联系,因为父类会被定义为抽象类,在对父类方法的使用上,只有父类方法在子类经过重写,才可以使用。这样使得父类的方法,能够在不同子类中发挥不同的作用。并且,也利于以后代码的维护,只需要修改子类,不需要修改父类。在问题上,第五次作业中,正则表达式,是一个很头疼的问题,因为正则表达式的固定模板很少,很多需要自行设计。后来通过一定的资料文献,完成匹配器的设计。在图形的继承上,不需要很大的设计。第六次作业中,同样是在正则表达式,出现很多问题,同样通过查找设计模式,完成匹配器的设计。在第六次作业中,就需要使用arrarylist了。链表的使用,需要很多的方法,在刚开始时,出现了很多问题,后来通过问同学,完成部分代码设计。这几次作业花费的时间,相比于前几次,可能翻了一倍,特别是最后一次作业,花费了很久的时间也没有写出来。第五次和第六次作业中,只有一题比较难写,其他题目还是能够拿到满分的。如果算的话,至少需要两个下午两个晚上。对于这次编程发现了自己很多的问题,比如说工具类的使用,还有链表的使用,还有正则表达式的使用,这些都是我没有克服的大问题,还有很多小问题需要自己慢慢学习修改。我知道,如果没有把现在的知识学熟,学到后面,问题会越变越多。我需要一段时间对以前的知识进行复习,不然后面就步步维艰了。

oo设计心得:封装性,继承性,多态性三大技术让不同的类在实现自身功能的同时,对其他类不会造成很大的影响,同时,在功能的继承上,也不会出现错乱。三大技术特性之间的功能相互补充,相互适应最后形成一个完整的软件系统,在系统内,所有的功能都可以实现,并且不同的功能在使用上,不会出现相互排斥或者相互关联的状况,这样,不仅仅利于用户的使用,也利于软件员工的维修。对于oo编程思维,这个具有完整的体系,三大技术,让oo编程思维更加成熟,在采用oo编程时,遵循三大特性进行编程,可以在减少时间复杂度的同时,提高编程效率。

测试的理解与实践:在代码开始复杂后,如果没有测试,就会出现编程人员同样想不到的问题,如果是民用软件还只是经济的损失,如果是军用软件出现问题,后果将不堪设想,具有代码的测试,让软件具有更高的可行性和信任性。

对课程的建议:第三阶段作业难度、题量的建议:建议减少难度增加题量,让知识有一个循序渐进的过程。课程内容讲解方面的建议:希望对arrarylist这个类进行更加详细的讲述,因为这个链表很重要。

Java5-7作业总结(第八次作业)19201421-吴志越的更多相关文章

  1. 2017-2018-2 1723《程序设计与数据结构》第八周作业 & 实验二 & 第一周结对编程 总结

    作业地址 第八周作业:https://edu.cnblogs.com/campus/besti/CS-IMIS-1723/homework/1847 (作业界面已评分,可随时查看,如果对自己的评分有意 ...

  2. oo第八次作业

    oo第八次作业 第五次作业分析: 1.度量图: 2.类图: 第五次作业由于是第一次接触多线程,所以导致自己的经验不足,因此最终也没有完成作业,到最后任然不能实现三部电梯的有效调度,所以导致了这次作业的 ...

  3. JAVA第八次作业

    JAVA第八次作业 (一)学习总结 1.用思维导图对本周的学习内容进行总结 参考资料: XMind. 2.通过实验内容中的具体实例说明在执行executeUpdate()方法和executeQuery ...

  4. 2018-2019-1 20189221 《Linux内核原理与分析》第八周作业

    2018-2019-1 20189221 <Linux内核原理与分析>第八周作业 实验七 编译链接过程 gcc –e –o hello.cpp hello.c / gcc -x cpp-o ...

  5. 2017-2018-1 JAVA实验站 第八周作业

    2017-2018-1 JAVA实验站 第八周作业 详情请见团队博客

  6. 2017-2018-1 JaWorld 第八周作业

    2017-2018-1 JaWorld 第八周作业 团队分工 成员 分工 陈是奇 统计成员工具选择 马平川 类图 王译潇 编码规范 李昱兴 用例图 林臻 状态图 张师瑜 推进工作进展.写博客 UML ...

  7. 2017-2018-1 20179205《Linux内核原理与设计》第八周作业

    <Linux内核原理与设计>第八周作业 视频学习及操作分析 预处理.编译.链接和目标文件的格式 可执行程序是怎么来的? 以C语言为例,经过编译器预处理.编译成汇编代码.汇编器编译成目标代码 ...

  8. 《ABCD组》第八次作业:ALPHA冲刺

    <ABCD组>第八次作业:ALPHA冲刺 项目 内容 这个作业属于哪个课程 http://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://ww ...

  9. 【西北师大-2108Java】第八次作业成绩汇总

    [西北师大-2108Java]第八次作业成绩汇总 作业题目 面向对象程序设计(JAVA)--第10周学习指导及要求 实验目的与要求 (1)掌握java异常处理技术: (2)了解断言的用法: (3)了解 ...

  10. 2019-2020-1 20199329《Linux内核原理与分析》第八周作业

    <Linux内核原理与分析>第八周作业 一.本周内容概述: 理解编译链接的过程和ELF可执行文件格式 编程练习动态链接库的两种使用方式 使用gdb跟踪分析一个execve系统调用内核处理函 ...

随机推荐

  1. ScrollViewer - 可用鼠标拖动滚动的列表框

    ScrollViewer添加附加属性: using System; using System.Collections.Generic; using System.Windows; using Syst ...

  2. Maven快照版本要这样用才真的香!

    Bug的身世之谜 今天又分享一个问题解决的故事.请看下图框起来的错误,明显就是找不到这个class嘛! 下面我们按照正常人的思路去排查这个问题,既然找不到class那就先看这个依赖的jar包有没有,如 ...

  3. PHP获取所有扩展及扩展下的所有函数签名生成php.snippet

    <?php $ext_info = array(); $modules = get_loaded_extensions(); foreach ($modules as $module) { $f ...

  4. Mysql数据库下载

    链接:https://pan.baidu.com/s/1ZwkY_Twsil7acvtCJ4ljgQ 提取码:t5ih

  5. usdt钱包对接,usdt 对接交易平台,usdtapi,以太坊对接,以太坊代币对接

    usdt钱包对接,usdt 对接交易平台,usdtapi,以太坊对接,以太坊代币对接 自动充提币接口开发. 可对接:商城系统,游戏APP,交易平台,网站,各类APP -实现自动充提,查询,上链等功能接 ...

  6. Spring (五):AOP

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出一遍就懂!b站搜索狂神说或点击下面链接 https://space.bilibili.com/95256449?spm_id_from=33 ...

  7. javascript中的constructor

    constructor,构造函数,对这个名字,我们都不陌生,constructor始终指向创建当前对象的构造函数. 这里有一点需要注意的是,每个函数都有一个prototype属性,这个prototyp ...

  8. Flask(python web) 处理表单和Ajax请求

    1.处理表单(form) 首先,编一个简单的html登录页面(名字为login.html(根路由jinjia2模板指定)): <html> <head> <meta ch ...

  9. 创建 SysV 风格的 linux daemon 程序

    本文介绍如何使用 C 语言创建 Linux 系统中 SysV 风格的 daemon 程序.注意:这是一种旧式的 daemon 程序写法,进入 systemd 时代后是不需要通过这样的方式创建 daem ...

  10. Maybatis的一些总结(二:基本使用过程)

    理清一下使用需要做的步骤 建项目,导入mybatis(3.5.2)和mysql(5.1.47)进pom.xml pom.xml需配置build时过滤器,否则会出现xml文件导出不了的问题 resour ...