java课程心得_Java课程的感想

前言

java这门课基本上结束了,但个人对这门课程有一些感想,总结一下这门课程以及作业中的认识。

这门课程的作业主要是pta上的作业,这些作业感觉是逐渐加大难度的,开始的时候,作业还比较简单,到后面的时候,作业就比较难写了,花的时间也就更多了,在写作业的过程中,有高兴的时候,也有难过的时候,高兴的时候是把作业写出来了,通过了pta上的测试点,难过的时候是没有通过测试点,而且很久都没有找出问题的所在。但是经过这么长时间的学习,自己对该门课程的对知识点,能够掌握。所以自己感觉这门课,通过大作业布置给学生做,这种方式还是比较好的,能够很好地锻炼学生的编程能力,而且能很好地有助于学生对知识点的掌握。

编程需要严谨的思维方式,不能只考虑片面,而要把所有的情况考虑进去,这样,编写出来的程序才是比较好的,如果编程的时候,没有经过仔细的研究以及分析,就容易出错,因为没有考虑到极端的情况,虽然是很少出现的,但是也是会出现的。而且写完代码之后,要学会在其他地方运行一下,观察一下,有没有其他的错误,不能急着提交作业,这样可以检查出自己没有发现的问题,而且通过一些极端的值进行测试,这样更能体现出自己所写的程序的完好性。面向过程和面向对象肯定是有区别的,面向过程和面向对象都可以解决当前要解决的问题,但是仔细想想和分析,就能发现面向过程缺少复用性,因为,面向过程只是能够解决当前问题,如果下次出现类似但又不完全一样的问题时,再想用之前用过的方法,就很难再复用过来,而面向对象就不一样,它的复用性很强,而且写出来的程序可读性也很强,让读者很容易读懂,找出错误也很容易,不像带着面向过程思维所写的代码很难找出错误。我觉得面向对象的基本原则首先是要能够解决当前所需要解决的问题,如果连问题都解决不了,这样面向对象写出来的程序就没太大价值。

然后就是所写的类里面的属性和方法要做到尽可能齐全,就是说这个类所有的功能和属性要包含进去,这样复用性就比较好。还有就是每个方法要遵循单一职责,就是这个方法不要有其他的本身没有的功能。对面向对象编程思维的理解,这种思维是突破以往面向过程的思维,我们要产生对象的概念,要把解决问题,看成是多个对象相互之间的作用,这样就可以产生出很多对象,通过对象之间相互关系,进行调用,从而逐渐解决问题。这样做可以提高程序代码的复用性。这样的思维要求我们有对象这个概念,这种思维将问题形象化,更好找到问题的解决思路。测试对于编码质量的检测很重要,通过测试可以检测出编码的正确性和效率性,很多编写出来的代码,不知道是正确还是错误或者时间和空间的效率性,很多时候需要通过测试来体现。

个人觉得测试是衡量编码质量的一把尺子。所以测试对编码质量是不可少的检测方法,假如让我设计测试用例,我会设计一些极端也就是边界值,因为往往很多人在边界值方面通过不了,自己也是有亲身经历的,而且我也会限制时间以及空间,因为很多时候大家写的代码都能过通过,但是并不代表所有人的代码质量都很高,讲究一个程序的质量,个人觉得要从正确性和效率上去衡量,而且我也会设计一些大家容易忽略考虑的情况的测试用例,这样可以看出一个人的思维上是否严谨,思路上是否缜密。

在面向对象方面受到教训和收获:

在解决问题时,要认真把题目看懂,要注意题目的要求,不能一看到题目,就用面向过程的思维去解决问题,这样自己很难真正学会面向对象的设计。要打破自己以前的思维方式,要逐渐地用面向对象的思维去看待问题,解决问题。

无论做什么,都需要有一个好的思维,对于OO编程来说,好的思维方式是基于面向对象的,以前的思维偏重于面向过程来说,但是对于OO编程来说,它是需要面向对象的思维方式,面向对象的思维注重于代码的复用性,就是说,解决很多问题,都可以用到同一部分代码,不需要自己另外再去写,这样就体现出OO编程的优越性,能够提高程序的效率。

OO设计心得

经过这门课程的学习,自己对面向对象三大技术特性之间关系的理解:

个人觉得继承是封装的更好的拓展,继承可以在保持封装性的前提下,突破访问的限制,可以做到对一些公开的属性和方法进行调用,更好地提高了代码的复用性,而继承是多态的基础,只有在继承的前提下,才能完成向上转型和向下转型。

面向对象设计设计的基本原则的理解(单一职责原则及“开-闭”原则)

单一职责:对于一个类应该包含这个类所具有的属性和方法,不属于这个类的属性和方法不应该放在这个类当中。

“开-闭”原则:就是对于扩展是开放的,对于修改是关闭的,就是说可以增加一些功能或者属性,但是对于一些自己原有的属性或者方法是不允许被修改的。

类设计心得

自己感觉到,一个类的设计要遵循单一职责和“开-闭”职责,一个类的设计要包含这个类该有的属性和方法,不属于这个类的属性或者方法,不应该加在这个类中。当扩展的时候可以增加一些功能或者属性,对于自己一些原有的属性和方法是不允许被修改的。

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

所谓封装性,个人从做作业的过程中认为封装是对某个类里面的属性或者方法进行封装,很明显,封装了的类,是不容易被其他类进行调用或者修改。首先对于某个类里面的属性来说,如果要使类里面的属性不被修改或者使用,那么就可以对属性进行封装,可以在定义属性语句的最前面加上private,比如 private double radious;这样这个属性就不会被随意修改。很多时候使用public进行成员属性的定义就很容易被其他类进行修改或者使用。同理,某个类里面的方法也可以像属性一样做到被封装。

其次所谓继承性,就是子类可以继承父类的很多方法和属性,这样就使得子类可以很灵活的被使用,因为所有的子类对象都是父类对象,子类可以继承父类的所有公开的属性和方法,但对于私有属性和方法,子类就不能继承,如果父类有继承了一个类,那么子类可以继承父类所继承的那个类里面的所有公开属性和方法,需要注意的是一子类只能有一个父类,也就是说一个子类只能继承一个父类。这个特点可以从作业中很好地体现出来,有一道题讲的是求出各类图形的面积和体积,比如圆类和矩形类都继承了图形类,而球体类和柱体类分别继承了圆类和矩形类,所以球体类和柱体类都继承了图形类的公开属性和方法,从输出结果就可以看出来。子类还可以重写父类的方法,当子类调用和父类同一种方法,此时子类不再是调用了父类的方法,而是调用了自己所重写的父类方法,这样就使得子类更加灵活,更易以修改子类的方法。不过在重写父类方法时,子类中方法的返回值类型必须和父类中的一样。在题目中,圆类和矩形类就重写了图形类里面的getArea()方法。

所谓多态性,多态指的是父类引用子类的对象,并且子类和父类有同名的重写方法,多态机制可以使内部结构不同的对象使用相同的外部接口,比如所有的子类对象都是父类对象,就很好说明了多态性的意思,就是所谓的向上转型。

我对这门课程的建议有:

希望老师今后可以在课堂上多提些问题,鼓励同学们回答,开发大家的思维,增强大家对面向对象的理解以及如何用面向对象的思维去解决问题,个人觉得这样有助于大家走出以前的面向过程的思维方式。


版权声明:本文为weixin_30603711原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。