java 本学期_本学期java课程总结

0.前言

针对在PTA上三个阶段作业作如下总结

1.作业过程总结

第1阶段的三次作业是一个过渡性作业,是从c语言的思想到面向对象的思想的过渡。第二阶段的这三次作业告别了第一阶段的披着Java语言语法的面向过程,进一步在老师建议的UML类图的设计下,加深对面向对象的理解。第三阶段更加应用了封装性、继承性与多态性,同时新加了接口与抽象类,栈和javafx的使用,三个阶段的作业穿插了正则表达式运用。

先从第三阶段的三次作业来说:

第7次作业的雨刷程序功能扩展设计,之前老师在上课的时候,让我们自己设计过类,之后又详细的讲了更高效的设计方法和对应的代码,本次作业是让我们在前一次的基础上,扩展了一些功能,我进一步运用抽象实例化,解决了一次实际问题。

第8次作业,刚一发布的时候我都懵了,因为我之前没有想过java中有多少关键词,从来没有针对一篇文章或者是整个程序进行遍历,查找其中想要内容的数目,但后来逻辑想通之后,发现这次作业也没有那么难,主要需要注意的地方就是53个关键词,一定要仔细!再仔细!不要出错。另外着重说一下第8次作业,我主要出现的问题就是:1,在把{ }、[ ]或者是( ) 或 . 或其他字符替换成空格的时候,用到的正则表达时一定要注意,需要在特殊字符前加 \\ ,否则字符就会出错。另外我学到了一个新的索引函数strs.indexof(String.valueof(ch)),通过这个,函数找到一个字符串中需要切割下来的子串,从而可以对这个子串,进行删除或者是改变操作。在本次大作业中可以去掉注释里面的内容。同时本次实验也是第1次在作业中用到数据结构HashMap排序。也让我有了一个更深层次的认识。

在第9次作业中,表达式求值主要考两个方面。第1个就是如何用正则表达式鉴别出来正确的表达式,第2个就是计算要用栈,如何实现代码。我采取的就是换了一种思路,因为表达式的多样性,括号里面还可以带括号,任意位置也均有任何可能,所以说,就用反着来的方式代替正着来,既然正的正则表达是不好写的,那就反着写这些正则表达式,把不符合的情况的正则表达式一一排除,接下来就用到大二上学期,数据结构写的栈相对还轻松一些,需要注意的点就是优先级的判断不要弄错,如下:

9f2004b67fd6a21856bc03cbc46a17e0.png

2.OO设计心得

总结一下,在遇到一个实际问题的时候,应该怎么分析,怎么划分类尽量降低耦合性,每个类各个方法的功能怎样实现功能单一。首先面向对象的优点就是容易维护,多次使用,扩展,它具有更好的封装、继承和多态的特性,可以设计出低耦合的系统,使系统更加灵活,更易于维护,虽然性能上面相对于面向过程要低一些,但后期扩展非常好,在面对一个实际问题时应“提出问题——理解问题——分析问题——解决问题”,可以先设计出适合的UML类图,根据类图进行修改后实现代码,在实现代码的过程中,首先应选用适合的函数库,合理选择接口,选择容器,在容器中除了加入Map中的元素是无序之外,其他均是有序的,如ArrayList 、LinkedList等,其次在写代码时要始终结合单一职责,开闭原则,里氏代换原则,接口隔离原则和聚合原则,最后在测试的时候,要多加注意在测试之前应该需要整体的设计与规划,不应该想到什么就测什么,对于错误的处理一系列完善的措施,首先验证基本功能是否都被实现,然后针对时间和空间是否去优化,罗列的各项功能、性能指标,来构造测试用例的输入数据,充分考虑测试数据覆盖的范围以及边界(最大与最小),正负以及特殊值(0、特殊点等),格式等,综上,最后在再时间复杂度和空间复杂度上进行优化,把代码的可复用性提高到最大。

3面向对象的理解与实践

面向对象的设计,不仅可以多人,多平台设计,更方便以后进行维护,不仅代码的质量较高,而且效率高,易扩展。我们可以创建类型的实例,不同的实例包含不同的数据,封装使得类的成员得以有选择性的暴露,一些成员只在类型的内部使用,称之为私有的(private),一些成员可以被派生类型使用,称之为受保护的(protected),一些成员可以被任何东西使用,称之为公开的(public)。面向对象比较适合用于许多特定领域的开发。同时测试是一个整体设计之后的过程,需要先对整体的设计与规划,测试过程要去想测试方法,测试用例,有时需要借助辅助工具进行测试,比如Junit,这个过程需要先导入Junit包,然后编写测试代码测试时间,测试数据,测试异常等。使用Junit测试的好处就是很直观,但当方法多时,就能凸显及其大的优势。

4.课程收获及感想

总结的话,回顾这一个学期的课程,收获颇丰,从最开始面向过程逐渐转化成面向对象,首先复习了基本的循环语句、条件语句以及基本的数据类型,之后复习了数组、链表,栈等基本数据结构,在引入对象和类后,又结合了正则表达式,通过继承、多态、封装、异常处理、文件、接口和抽象,一步一步解决更难的实际问题,在这个过程中也学到很多函数库函数,感受到了开发人员的辛苦。在课程的最后几节课学了Javafx的基础,以及事件驱动编程和动画,勾起了我对页面设计以及动画编程的好奇心,自从学习了javafx之后,让我感觉到Java开发的无限可能性,期待之后的课程能够更加运用Java解决更复杂的实际问题。

标签:java,正则表达式,代码,作业,面向对象,课程,测试,设计,本学期

来源: https://www.cnblogs.com/scy-blog/p/13055103.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值