java周期数据_Java第二周期作业总结

前言:

本博文主要针对第二周期三次作业情况的总结,以及近一段时间学习中遇到的问题,近期学期状况的一个自我总结。

1.作业过程总结

(1)本周期三次作业其实难度是递减的。其中第一次中水文数据校验这一题的难度挺大的,他运用到了我们刚学但是并不熟悉的正则表达式。刚接触这题的时候不知道从何入手,经过一个星期慢慢的研究也是渐渐的有了思路。第二次作业中第二题多项式的求导,仍然需要用到正则表达式,但是由于有了第一次的经验,所以第二次相对来说就比第一次简单多了,但还是花废了很长时间才写完。第三次作业老师为了让我们缓缓,对前面的知识有个更好地理解,所以难度并不大,都是上课讲的内容,与第一次第三题第二次第一题都是同一类型的题目,只是要求相对多了一些。

(2)封装:封装是面向对象编程的核心思想,简单来说封装性就是利用抽象数据类型将数据和基于数据的操作封装在一起,保护数据并隐蔽具体的细节,只保留有限的接口与外界联系。

继承:简单来说就是使子类的对象拥有父类的全部属性和行为,同时可以增添自己的所特有的属性和行为。这样可以节省时间有利于代码的使用。

多态:简单来说就是一个程序中同名的多个不同方法共存的情况,通常使用方法的重载和重写(也叫覆盖)来实现类的多态性。

这三次作业中封装和继承在每个题目中都有体现,通过作业的不断练习我也对封装和继承有了更深的理解,多态在这几次作业中可能我没有根据题目提供的类图来写我还没有熟练的运用多态,但是随着时间的推移,我相信我也会更加熟练的运用多态。

(3)这三次作业中主要遇到的问题主要还是正则表达式的正确运用,以及题目所给类图的理解。我一般遇到问题会通过上网查找资料以及和同学交流思路来解决问题。

(4)这三次作业用的时间相对于第一周期作业加长了很多。这次作业第一题后面两题难度不大用了一个下午就写完了,但是第一题水文数据校验难度挺大的,零零散散大概用了三天。第二次作业第一题很简单,第二题较难,大概用了两天才写完。而第三次作业很简单用了一个下午就写完了。

(5)在编程过程中,严谨性是非常重要,有的语法错误在PTA上是检测不出来的,比如第一次作业第二题中有个语法错误在PTA上运行并未报错,只是一直显示答案错误,我一直认为是算法出错了,所以一直在检查算法出错没。检查了半天还是答案错误,结果放在Ecplise上一运行就知道是语法错了。并且在分析问题时一定要严谨,考虑一定要周全,这样在PTA多个测试点的测试下才不会出错。

2.设计心得

(1)封装:封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。要访问该类的代码和数据,必须通过严格的接口控制。封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段。适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。封装的优点:1. 良好的封装能够减少耦合。2. 类内部的结构可以自由修改。3. 可以对成员变量进行更精确的控制。4. 隐藏信息,实现细节。

a2c48cc0aee8b837be20f6b39c30d4c9.png

继承:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。继承可以减少代码的重复,提高代码的利用率。

733866ce0cd02067901201ac24e6a38b.png

多态:多态是同一个行为具有多个不同表现形式或形态的能力,是对象多种表现形式的体现。多态的优点:1. 消除类型之间的耦合关系。2. 可替换性。3. 可扩充性。4. 接口性。5. 灵活性。6. 简化性。

98cfdca31ccf3a34cc3d15a80bd52c36.png

(2)单一职责原则:每个类都应该有自己的单一的功能,并且该功能应该由这个类封装起来,同时这个类应该只有一个引起它变化的原因那就是他自己本身代码的修改,他的修改不会对其他的类造成影响。

1a14a0456ccd93d4adc8fdc11ed4a320.png

“开-闭”原则:每个类应当对扩展进行开放,对修改进行关闭。其他的修改对他并没有什么影响,但是其他的类是可以使用他的功能和属性。

520ccb42f7d81c78a20f08909f594c28.png

(3)面向对象与面向过程最大的区别就是它不用考虑具体的实现步骤而是通过相应的类,类有其自己的属性和方法。并且通过继承可以减少代码的重复,通过多态性可以使代码更高效的使用,在不同的情况下有不同的结果。通过封装可以使代码更安全。

(4)类设计要考虑单一职责原则和“开-闭”原则。并且落实到实际问题中,我们在写PTA的过程中,不一定要按照题目所给的类设计,可以有自己的思维。

三、测试的理解与实践

(1)测试对我们的代码能否正常的运行,是否会出现bug有很大的帮助,他能尽早的发现你代码中存在的问题,以免在以后的运行实践中出现大的漏洞。同时如果测试还能反映出一个代码的性能,在两个代码实现的功能都相同时,运行时间短的代码效率显然更高,测试会让你的程序变的健壮。

(2)可行,JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。JUnit有它自己的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。他可以自动化测试,不需要人为的干预。

四.课程收获

通过这四周的学习我了解了正则表达式对数据校验的重要性,了解面向对象的封装性、继承性与多态性三大技术特性以及对面向对象设计的基本原则理解。同时在这四周写作业的过程中我也学习到遇到难题要懂得像老师以及同学请教,要自主上网查找资料,把不懂的内容搞懂。并且不要过于依赖题目提供的类图要有自己的想法。

五.对课程的建议

(1)第三阶段的题目我认为不要出太难也不要太简单,要在题目中能学到知识,并且保证大部分人能完成。对于题量我认为三题比较合适。同时我希望老师可以在题目截止之后开启同学之间可以互相查看代码,互相学习。

(2)上课过程中我希望老师可以提前把代码给我们,让我们提前预习。以及下课后回放可以尽快上传,因为有的时候因为网络问题有的知识点会没听到,需要下课看回放。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值