OO学期总结

学期总结

  听上个学期就学Java的同学说Java很难,开始学的时候就很慌,上课一点都不敢分神,后来发现跟着老师走再敲作业入门的很舒服,虽然总是会遇到些困难,但是还都可以解决,这种难度恰到好处,让我继续保持着学习的热情,整个流程跟下来很舒服,学习到了很多。经过整个学期的学习,我对Java语言和面向对象思想有了更加深入的认识。主要是以下几个方面,后面还会对课程的建议:

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

  1.一开始写的时候就要考虑到很多特殊场景,针对这些情况写特定的代码,并且写好备注,不然大概率运行出错,如果不告诉测试内容那几乎很难找到,因为一开始忽视了后面也很难想到。

  2.表达式该写括号就写上,不要尝试让计算机运用数学优先级去自己运算,不然后面错在哪都不知道。

  3.有些备注一定要写,尤其是针对特殊情况的代码和有许多大括号的地方。写备注是为了增加代码可读性并且使代码看起来分区明确,方便查找和修改,不然会看的眼花缭乱不明所以,有可能越改越错。

  4.要遵守命名规则,这样一看就知道是什么东西,大小写不同也也方便一个单词重复命名。否则可能会看错用错,看起来很乱。

  5.时不时看一下阿里的Java开发手册,会看到很多规范的方法。

二.oo设计心得

    ①对面向对象三大技术特性之间关系的理解

  封装可以减少代码冗余,同时兼顾密封性和便利性,为之后的继承多态提供基础;

  继承同样可以减少代码冗余,也可以方便对通用属性的统一修改,使代码更有条理,为多态打下基础;

  多态可以使子类更加丰富,功能多样,同时利用继承和封装使其更加简洁易修改。

    ②面向对象设计的基本原则理解

  1.单一职责原则:每个类做好自己的事情,尽量不与其他类功能重复,

  2.开闭原则:要对扩展开放,对修改关闭。就像上次那个雨刷的随堂作业,利用控制类来集成很多类,利用抽象类来使扩展性增强。但这个其实是一个矛盾的点,当追求过多的可扩展性就会导致代码臃肿,而追求代码代码简洁又会对扩展性造成影响,所以这里需要根据实际情况来平衡选择。那次的代码我就觉得有些不合实际,有些臃肿了,我认为既然雨刷的工作模式几乎使固定的,就没有必要在一开始设计的时候就绞尽脑汁去想一些极特殊情况,但是其他的扩展还是有必要的。

  3.里氏代换原则:在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,遵循这个原则可以让我们能更加抽象的编写代码,不用过于纠结对象会如何实例化,修改的时候也可以只修改子类而不用担心用到这个子类的代码出现问题。

  4.依赖倒置原则:可以作为手段实现开闭原则,要与里氏代换原则和开闭原则一起学习使用。

  5.迪米特法则:这是一个为了减少耦合度而存在的法则,非常重要。

    ③OO编程思维的理解

  利用一个又一个对象去完成任务,主要的精力放在需要什么对象、怎么创建对象、怎么运用对象上。比如我需要造房子,我就需要考虑需要什么工人,这些工人需要什么水平和技能,怎么运用这些工人,而不需要我亲自去造。当我需要临时加建一个游泳池(增加需求),我就重复上面的三个步骤,再招募几个工人就好了,其他工人继续干他们的活,突然不想造游泳池了就把他们解雇就好了(易修改)。当我造完房子想再造个桥的时候,发现之前造房子的一些工人可以用的上,我就可以再招募他们来给我造桥(可复用性)。

三.测试的理解与实践

  1.编码过程中即使提前考虑了多种情况,但是也不可能面面俱到,这个时候就需要测试来体现出问题。

  2.当代码变的复杂了起来,就需要及时针对每个类进行测试,这样测试过的类之后就不需要重复测试,易于排查、锁定问题,同时节省之后的测试和找错误的时间。

  3.要多学习junit,熟练运用,这样对测试会有巨大帮助。

四.整个课程的收获

  1.以前听到面向对象思想觉得很厉害,也知道以后会有用,之前还在网上搜索了解,似懂非懂,现在经过学习终于有了比较形象和深刻的理解,很开心。

  2.编程一定要课上认真听讲,及时提问,因为课上一般讲的都是基础的东西,如果没有搞懂,课后会寸步难行。同时要多去网上学习大佬的方法和课上没讲的基本信息。编程这种技术类的东西就是要与时俱进,不断学习自己不知道的东西,现在在自学Github,希望能尽快感受到开源的美妙。

  3.一些常用的算法一般都有官方的方法,要善于搜索发现,用的时候也要理解,最好过段时间再用一次,加深记忆,这样就不会每次都去搜,也能更熟练地使用。

 

虽然这个学期的Java学习已经结束了,但是还是对课程有些建议:

  1.希望让我们自己想UML图,这样就可以练习我们的对整个作业的设计能力。

  2.建议将各种情况的输出说明白,比如输入空怎么输出之类的,要么就不要有这样的测试点,因为只能靠猜或者问同学,严重的时候甚至会要改很多代码,一开始说清楚就好了。

  2.还是希望将一些语法的时候可以多将一些稍微更底层的原理,这样便于理解也便于记住用法,不会生搬硬套从而导致一些不知名的错误。

posted @ 2020-06-07 23:45  扁桃体永不发炎  阅读(102)  评论(0)    收藏  举报