java实现二阶三阶方程式_Java第二阶段作业总结

本文是对Java第二阶段作业的总结,重点讨论了正则表达式、继承、抽象类、多态和接口的运用。通过作业加深了对类封装性、继承性和多态性的理解,探讨了面向对象设计原则和测试的重要性,并分享了编程过程中的严谨性教训。
摘要由CSDN通过智能技术生成

前言

针对Java第二阶段在Pta发布的三次作业进行总结,本阶段每次作业题量减少,难度较第一阶段有所提升,开始学习应用正则表达式,继承,抽象类,多态,接口等方法。

一、作业总结过程

①三次作业之间的知识迭代关系:本阶段第一次作业以继承和正则表达式的应用为主,第一题主要考查正则表达式的运用,题目难度较大,第二题为蒙特卡罗方法求圆周率,第三题为图形的继承。第二次作业也主要以正则表达式运用和继承为主,其中还涉及到多态,第一题,在第一次作业的基础上加入了多态的概念,运用更加灵活,第二题是方程式求导,涉及正则表达式的运用,难度相比于第一次有所降低。第三次作业主要在第二次作业第一题的基础上改动,增加功能,同时引入接口方法。三次作业,每一次都让我能够了解和应用新的方法,同时不断加强运用,第一次作业的正则表达式,继承,第二次作业的多态,第三次的接口,熟悉前一次作业运用的同时能够学习运用新的方法。

②通过作业对三大技术特性的理解:三次作业体现了类的封装性、继承性和多态性,对这些特性也有了一定的理解。首先,几乎每一个题中各个类的成员变量都是私有的private型,外界无法直接访问,只能通过getter/setter方法间接访问,这样可以保证代码的灵活性,健壮性,方便更好的运用。在继承方面,作业主要以图形的继承为主,通过extends来实现继承,继承父类的子类可以 继承父类中包含的方法,同时也可以自己增加方法,一定程度上提高了代码的复用性。在多态性方面,作业中类都有相同的方法,及方法的重写,同一类型不同条件下表现出不同结果。

③作业过程中遇到的问题及解决方法:在本阶段的三次作业中,我觉得难度最大的就是涉及正则表达式运用的两个题,第一次作业第一题,水文校验,解题过程中,对于数据的拆分,和校验非常的懵,感觉无从下手,另外,很多类中函数的相关调用理不清,之后花了好长的时间去学习正则表达式,去匹配,同时请教能力更强的同学,开始可以实现数据的拆分和匹配,但代码输出还存在着很多的格式要求,数据两端要去空格,运用了trim(),改了很久依然还存在两个问题没能解决。第二次作业第二题也是如此,还有一个问题未能解决。关于图形的继承的三个问题中,对于图形对象的排序开始未能实现,只能实现面积的排序,之后,通过先对面积排序,然后把面积依次放入数组中,再去和刚开始的对象位置进行比较,以此记下图形对象位置并保存于另一个list中,实现输出。

④作业花费的时间比例:本阶段作业难度提升,同时第一次作业第二次作业都有一个题未能完全解决,花的时间比较多,第三次作业个人觉得相对比较简单一点,花的时间相对较少一点,大概时间比例为3:3:1.

⑤对编程过程的严谨性的认识及教训:面向对象中对于代码的复用性,非常的重要,自己在第一次作业和第二次作业中的涉及正则表达式的运用的题中,未能设计严谨,很多方法比较乱和杂,导致最后有部分功能无法添加实现。这让我知道,写代码一定要考虑周全,严谨,不能乱添加方法,要考虑代码的复用性和严谨性才能更好的实现。

二、OO设计心得

①对面向对象三大技术特性之间关系的理解:首先,封装对信息进行保护,成员变量全部私有化,只能通过特定的方法进行访问,保证了代码的健壮性,其次继承性,子类可以使用父类的属性和方法,也可以自己另外设计方法,体现了代码的扩展性,对于多态性,理解的不是很多,也就是一个类可以存在相同方法在不同条件下有不同表现形式,同时允许不同类的对象对同一消息作出响应,更多的运用到方法的重载。

②面向对象设计的基本原则理解:单一原则:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中,一个类就做一件事,一个类的内容如果过多,则代码的可复用性会大大降低,编写代码的难度会加大。开闭原则:面向修改关闭,面向扩展开放,也就是说我们要在编译层面上在应对需求的变化时不进行修改,而是在原有功能的基础上进行扩展。

③OO编程思维的理解:通过合理的运用面向对象的三大特性,封装性、继承性、多态性及编译原则进行编写来解决实际问题,条理清晰多变,可复用性好。

④类设计心得:在类的设计上一定要遵循单一原则,这样可以提高类的可复用性,同时根据具体的问题,具体的功能实现,考虑类的继承,以及抽象类的使用,对于类中方法要考虑属性,成员变量的私有性,及方法的重载和多态性。

三、测试的理解和实现

①测试对于编码质量的重要性:一个代码是否完整,是否具备完整的功能,表现在代码能否在复杂多变的情况下仍然保持代码的正确性,而检测代码健壮性,正确性,完整性最重要的就是测试,各个情况下的测试能够很好的检验出代码的编码质量,功能是否完善,有效的保证编码质量。

②使用Junit进行程序的测试是否可行:Junit主要是进行单元测试,即对每一个函数进行测试,单元测试是一件很麻烦的事情,你要重新写另外一个程序,在该程序中调用你需要测试的方法,再观察是否有问题,个人觉得Junit进行程序测试应该可行,但是比较麻烦。

四、课程收获

本阶段的学习中,有效的学习到了用正则表达式对数据进行拆分,匹配校验,对于面向对象编程的三大特性,封装、继承、多态更加的熟悉、了解和熟练运用。对于抽象类、接口设计的应用有了一定的了解。自己的编程也逐步以面向对象为基础了,更少的出现面向过程的编程思维。

五、对课程的建议

①第三阶段作业难度、题量的建议:对于第三次作业,我觉得难度应该适当提升,但是也不要太难,应该考虑大部分同学的编程能力,题量我觉得和第二阶段的题量差不多就可以。

②课程内容讲解方面的建议:老师对课程的讲解方式我觉得很好,更多的就是,希望在我们完成Pta作业后,老师能花一点时间对Pta上的作业进行简单的讲解,虽然很多同学都能做出来,但是肯定还有不清楚的地方,同时使用的方法上不同,代码的实现上比较复杂,这就可以重老师的方法中获得收获。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值