Java本学期课程总结

0前言:

在Java课程进入尾声之际,对本学期的Java作业和所学的知识做一个总结。这个学期的Java作业确实对我的编程能力有了一定的锻炼,但同时也让我发现了我在学习上的许多不足。我在Java学习上还是以被动学习为主,就是主要以老师输入为主,自主学习这一环节较为的,这就导致我对难题的解题能力有所不足,经常会去上网查询和向同学请教。但是,经过一个学期的学习,还是收获不少的,让我来谈谈我的学期收获吧。

1作业过程总结:

① 总结作业之间的知识迭代关系:

一开始的作业,都只是对语法和算法的简单考察,基本上只有if,else if,或者switch的循环结构,最多只接触了Boolean类型,还都是偏面向过程的题目。到了后几次就开始是给Main类补充方法和类了,开始接触面向对象的思维了,再后来的几次都是在指导书给的类图的结构和Main类的引导下将题目解决完成。最后的几次作业不给指导书,让我们根据自己所学的,自由发挥,考察了我们总结独立去解决问题的能力。

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

最开始我们的作业很简单,通常一个Main类就可以解决,到了后来根据老师给的Main类和指导书,我们开始学会在老师的题设引领下对功能进行分装到类,学习了封装性。后来老师又给我们设计Shape类型的问题,通过让我们各种图形共有的比如,面积,周长,体积等特性,让我们使用继承来接解决实际问题,学习了继承性。后来的作业我们又开始接触了接口,一个类继承另一个类,然后又可以有不同的方法,所谓多态性。

③学习过程中遇到的问题及解决方法:

前期遇见的问题比较少,一般都是思维上出现了纰漏,导致可能有几个测试点不通过,仔细找找一般就能解决。后来就主要练习继承和多态,在老师的作业指导下,可以解决问题。后来的作业开始涉及一些专业知识点比如正则表达式等,就在知识上会有所不足,然后我会去上查阅资料和询问同学,解答我的疑惑。

④ Java作业花费的时间比例:

前期的作业基本上花个一两天完成是没有问题的,后期的作业,有部分作业是完全可以完成,另有部分作业可以完成,但是可能会有部分测试点无法调试通过。

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

有一说一,编程对于个人思维的严谨程度是一个很好的考验,就是如果前期在考虑问题时思维不够严谨,程序就容易出现漏洞,很可能就会有不能通过的测试点,就像我在老师完全不给任何指导后就有几次出现了这样的问题,只能自己慢慢测试,来完善自己的代码。

2.设计心得:

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

在我个人目前看来,封装是通过将对象的某些属性和和操作隐藏起来,内部信息是对外隐藏的,在其他的地方就不能随便使用和调用了,是对方法成员的一种保护。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问。继承的子类可以拥有父类的公开属性、方法,子类可以拥有自己的属性和方法,即子类可以对父类进行扩展,子类可以用自己的方式实现父类的方法。Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类。多态是一种事物的不同表现形式,具有多样性。

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

定义上来说:开闭原则(OCP)是面向对象设计中“可复用设计”的基石,开闭原则告诉我们应尽量通过扩展软件实体的行为来实现变化,而不是通过修改现有代码来完成变化,它是为软件实体的未来事件而制定的对现行开发设计进行约束的一个原则。我个人认为就是即每个类都应该有一个单一的功能,并且该功能应该由这个类完全封装起来。

③ 编程思维的理解:

我觉得就像面对对象这个概念一样,编程是面向使用者的,要将现实问题抽象成类,把不同的问题通过一个个类来解决掉。

④ 类设计心得:

保证数据的私有性,为了实现一个类的良好封装性,一定不要使用其他的方式去声明成员变量;对数据初始化,为了可读性,应该为变量提供初始化或是利用构造器进行初始化,局部变量必须初始化;一个类的功能尽量不要太繁杂,类名/方法名的名称要可以体现其职责,见名知意,增加代码可读性。

3.测试的理解与实践:

①测试对于编码质量的重要性:

除了严谨的思维外,对代码的测试也是代码质量的一个很好的保证。未通过测试点就是大家在一个个的测试后才发现的。所以多样化的测试点,是对代码运行结果的准确性和输出格式正确的一个很好的保障。

4.课程收获:

①总结Java学习的教训和经验:

通过这么长时间的对Java的学习,我对Java的许多基本概念都有了一个了解,和自己的认识。我通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性,还理解了“单一职责原则”和“ 开闭原则“,渐渐地从面向过程编程转向了面向对象编程。

5.对课程的建议:

①对作业难度、题量的建议:

希望之后的PTA作业能够难易相结合,不要出很多难以完成的题目,控制好难易题的比例。

②课程内容讲解方面的建议:

我感觉老师每次讲课讲的都挺细的,也很容易听懂。希望老师上课讲解内容的时候可以讲解某个程序的代码为例子来传授知识,我觉得这样可能更容易理解一点。