java第二阶段总结

Java阶段性作业总结

  1. 作业过程总结

①总结三次作业之间的知识迭代关系;

第四次作业主要考察的是使用 Java 中的字符串处理类以及正则表达式对输入字符串数据进行合法性校验及计算,使用蒙特卡洛仿真方法求圆周率,实现图形类的继承,对继承的练习。第五次作业就是掌握类的继承、多态性及其使用方法,使用类的继承、多态性编写程序对简单多项式的导函数进行求解。 从继承到多态的一起运用,先是学习继承然后就是学习你将父对象设置成为一个或更多的他的子对象相等的技术就是多态。第六次作业掌握类的继承、多态性使用方法以及接口的应用,这次就是面向对象三大法宝都运用,运用虚拟端口实现方法。

②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性;

先学习继承,懂得子类可以拥有父类的“内容”子类还可以拥有自己的专有的内容。先是通过简单的图形继承,Shape作为父类里面拥有求图形面积公用方法,这样就可以实现功能的拓展,然后子类就重写父类继承来的求图形面积方法。

有了继承之后才有多态,继承之后从写了父类方法就有了多态,相同的方法名对应着不同的方法实现,但是方法的参数不同还有就是不同类(父类和子类)中,允许有相同的变量名,但是数据类型不同;也允许有相同的方法名,但是对应的方法实现不同封装就比较简单把所有的属性私有化,对每个属性提供gettersetter方法,主要是为了增强安全性和简化编程。

③作业过程中遇到的问题及解决方法

水文数据处理时,正则表达式使用,根本不会,如如何表达出标准测试等。解决方法:进入老师给的网址https://regex101.com/里面学习,里面的讲解非常的全面,对于作业里面需要的东西完全可以解决。

ArrayList<Shape> nums=new ArrayList<Shape>();进行排序时一开始 不知道怎么完成,自己就去网上学习,发现需要用到import java.util.Collections;

import java.util.Comparator;这俩个Java。unil里面自带的工具。

第七次作业自己不知道如何将数组集合ArrayList<Integer> list = new ArrayList<Integer>();

转换为字符串集合List <Card> cardList=new ArrayList<Card>();

,解决方法:询问同学。

④每次作业花费的时间比例

动手能力有限,一道题一般是一个下午出架构,一个下午DEBUG,运气好俩个下午,运气不好就写不出了。反正一般出现问题就去求助不然的话就算坐在电脑面前再久也想不出,第四五六次作业练习递减,刚开始摸不到思路,后面慢慢的至少知道要往哪些方向写了。

⑤对编程过程的严谨性的认识及教训

最大的教训就是审题审题审题,就最后一次题目,上面上了要用main。Input输入而我就是没认真看题,改了一个下午的其他算法还是过不了,最后在同学的提醒下才注意,最后一个简单的提示让自己浪费了好几个小时。还有正则表达示一定自己要去学习,老师讲的只是一部分,网上一些博主的就更全面,对我们的帮助非常大。

  1. OO设计心得
    ①对面向对象三大技术特性之间关系的理解

封装:隐藏对象的属性和实现细节,对外提供公共的访问方式,以防止数据的随

意访问和修改。继承:通过扩展一个已有的类,并继承该类的属性和行为,来创建一个新的类。多态就是在继承的继承上满足子类重写父类方法,即几个类相同方法名不同执行方式。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则)

单一职责就是一个对象只有一个职责,就比如求面积就是求面积,不要又求面积又求体积,这样会让代码更加复杂,而且复用性不高,要在一个类中就一个职责,就比如日期类的设置一个类专门求是否为闰年,另一个类中求前后多少天。开闭职责就是把源代码封闭,一些需要更改的数据开放。就比如图形的继承那块,你把其他函数封闭起来,你加入要加入一个其他图形如五角型,你只需要自己在extends Shape就可以实现了,并不需要去更改其他函数。
③OO编程思维的理解

去百度才知道OO的意思为OO(Object oriented)翻译过来就是面向对象的意思,面向对象的编程思路还是那三大元素:封装,继承,多态。编程的时候就是要设计好类图,让类图做到单一职责,这样题目就很容易迎刃而解了,难的就是思路类图的设计,代码实现倒是很简单的,就比如老师给的题目你只需要按照他的类图来写,我们就知道这个类负责什么功能什么职责。
④类设计心得

类的设计不能太少,在最简便的方法下多创建类,符合单一职责,类设计好了代码就非常简单易懂,这样用Junit测试的时候也可以更好的检查出问题,如果类没设计好就成了面向过程这样你的函数的调用性更差,你的代码也会更加长,自己改起错误来也更加的难。
3.测试的理解与实践
①测试对于编码质量的重要性

感觉现在能感觉到的最重要的就是PTA不测试你就过不了,过不了就没分。主要测试的功能就是找出你代码的漏洞,查出一些你自己没注意的错误。然后就慢慢改,一般就是写代俩小时改代码10小时。
②查阅资料,假设使用Junit进行程序的测试是否可行

可行,这样就可以知道你到底是哪个算法出现了错误
4.课程收获
总结这四周来在OO方面的教训及收获

掌握了封装,继承,多态,对ArrayList排序有了了解,正则表达式的应用得到了大的提升。
5.对课程的建议
①第三阶段作业难度、题量的建议

作业难度对我来说很大,题量可以接受。
②课程内容讲解方面的建议

多讲解点题目,用题目理解做题思路,然后下个来个简单小练习这样就很好掌握了。

猜你喜欢

转载自www.cnblogs.com/zhou3453/p/12793447.html
今日推荐