前言:关于此次三次作业,相比于前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. 【cs224w】Lecture 6 - 消息传递 及 节点分类

    目录 Node Classification Probabilistic Relational Classifier Iterative Classification Belief Propagati ...

  2. 透过源码分析ArrayList运作原理

    List接口的主要实现类ArrayList,是线程不安全的,执行效率高:底层基于Object[] elementData 实现,是一个动态数组,它的容量能动态增加和减少.可以通过元素下标访问对象,使用 ...

  3. VUE一款适用于pc平台的简单toast

    新项目要求用typescript+vue+elementui的模式来搭建pc项目,最初踩了好多坑.产品说提示不想用element-ui的提示. 打算用toast的形式.所以就自己写了一个pc的toas ...

  4. CAS单点登录系列之极速入门于实战教程(4.2.7)

    @ 目录 一. SSO简介 1.1 单点登录定义 1.2 单点登录角色 1.3 单点登录分类 二. CAS简介 2.1 CAS简单定义 2.2 CAS体系结构 2.3 CAS原理 三.CAS服务端搭建 ...

  5. MTK Android 预置APK

    [FAQ03038] 如何预置APK [DESCRIPTION]1, 如何将带源码的 APK 预置进系统?2, 如何将无源码的APK预置进系统?3, 如何预制APK使得用户可以卸载?4, 如何使得用户 ...

  6. Java第十七天,Set接口

    Set接口 1.特点 (1)不包含重复元素. (2)没有索引. (3)继承自Collection接口,所以Collection接口中的所有方法都适用于Set接口. 2.解析 (1)为什么不能包含重复元 ...

  7. 区间dp入门+例题

    区间dp作为线性dp的一种,顾名思义是以区间作为阶段进行dp的,使用它的左右端点描述每个维度,决策往往是从小状态向大状态转移中推得的.它跟st表等树状结构有着相似的原理---向下划分,向上递推. dp ...

  8. 八、路由详细介绍之动态路由OSPF(重点)

    一.OSPF介绍 OSPF优点:无环路.收敛快.扩展性好.支持认证 二.工作原理: 图中RTA.RTB.RTC每个路由器都会生成一个LSA, 通过LSA泛洪进行互相发送相互学习,形成LSDB (链路状 ...

  9. centos7安装MariaDB以及Failed to start mariadb.service: Unit not found的错误解决

    centos7下yum安装MariaDB CentOS 7下mysql下替换成MariaDB了.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权 许可 Mari ...

  10. python 自动生成model 文件 案例分析

    生成方式 Python中想要自动生成 model文件可以通过 sqlacodegen这个命令来生成对应的model文件 sqlacodegen 你可以通过pip去安装: pip install sql ...