关于Java第一阶段学习总结
前言
本阶段学习共发表三次作业,第一次以熟悉java为主,第二、三次作业题目相似,重在感受java的特点。
1.作业过程总结
三次作业的知识迭代关系
第一次作业主要是熟悉java的语法,熟悉输入输出的操作;
第二次作业开始涉及到java方法的构建,在一个类中创建对象,使用自己的方法;
第三次作业,虽然是相同的题,但类的概念逐渐清晰,面向对象与面向过程的差异体现出来。
如何通过作业逐步从面向过程过渡到面向对象
第一次作业,我还完完全全的是面向过程的思想:不存在什么对象,把所有代码挤在主类中的主函数中去运行,用java的语法去做了c语言才做的事情。
第二次作业开始,当我发现不能直接调用方法而必须先创建一个对象时,体会到不同。
第三次作业以前两次作业为基础,实现调用类的方法,尤其后两道题对类的设计,与第二道题(仅在类中构建方法)形成鲜明对比,很容易的就感受到之间的不同,知道了接下来该做什么事情。
作业过程中遇到的问题及解决方法
作业中,我主要有两大类问题。第一类是算法问题,例如求下n天的问题,刚开始的想法比较简单,让天数一直循环到n就解决了。但当n的范围扩大时,就出现了运行超时的问题。这时候就不得不把原来的算法改掉(这时候悔不当初如果一开始就想清楚多好)。求前n天也是坎坷满满(最后交的作业仍未改对),后来我进行单步调试,监测循环过程,出现错误、分析原因。至此,感受到单步调试的魅力。第二类问题,不熟悉java的一些规则或是粗心大意导致出现空指针

查阅资料后解决了问题,并总结了java会出现空指针的几个原因:
*调用空对象的问题
*访问或更新空对象的变量
*获取空集合的长度
*访问或更新空集合中的内容
*同步空对象
作业花费时间比例
第一次较容易,后两次大致为第一次的两倍;第二次第三次中的四个题目,花费时间完全取决于自己开始的选择。前面题目较为简单,不需要考虑时间和效率的问题、也不需要过多的思考用简单的循环也可以做出来。如此,后面就会出现运行超时等问题,这时候又要在修改代码与换种思路之间进行选择。
对编程过程的严谨性的认识及教训
编程过程中,不仅要对语法严谨,更重要的思维严谨,再简单的问题也要认真考虑,只有思维严谨了后面的路才好走,不然会有返工的情况(出来混总是要还的)。算法的适用性尽量要广。
2.OO设计心得
面向过程与面向对象的比较
面向过程是一种以事件为中心的编程思想。分析出解决某个问题所习耀的步骤然后用函数把这些步骤一步一步实现。特点为模块化、流程化。
而面向对象是把构成问题事物分解成各个对象,建立对象的目的是为了描述某个事物在整个解决问题的步骤中的行为。特点为封装、继承、多态。
在使用过程中,我感受到,面向对象要比面向过程的代码重复性高的多,一开始觉得这是件冗杂的事情,但后来发现这是也它的优点,当某一部分要修改或新增功能时,不用改变已完好的代码。
面向对象设计的基本原则理解
五大基本原则有:
*单一职责原则:对象应该仅具有一种单一地功能。也就是说每个对象要各司其职,做好自己的事情。这时最容易理解的规则,但也最容易违反。
*开放封闭原则:软件体应该是:对于扩展是开放的,但对于修改是封闭的。这样不需要修改已有的接口定义和已实现的类,我认为是很让人省心的,不用再回头看原来的代码。
*替换原则:子类应当可以替换父类并出现在父类能够出现的任何地方。
*依赖原则:具体依赖抽象,上层依赖下层。
*接口分离原则:模块间要通过抽象接口隔离开,不能强迫用户去依赖那些他们不使用的借口。
OO编程思维的理解
在面向对象的世界里,一切都是围绕对象转,而类是对象的蓝图(如果类是一张张空白的通讯录卡片的话,对象就是一张填好信息的有实际数据的通讯录卡片),中心思想为:封装、继承、多态。
3. 测试的理解与实践
测试对编码质量的重要性
“只有经历过,你才会知道有多痛”。编好代码而不进行测试,一切都是耍流氓。因为有pta测试点“温情”的错误提示,我们常常会忽略掉测试这一步。实际上,测试不光是能发现错误,有时候也能让你找到错误的源头。
设计测试用例
以现有经验来说,我会先用最普通的样例去测试,接着再用一些边界值测试,最后根据测试结果,选择样例测试。
4. 课程收获
一个java小白,在第一阶段的学习之后,对面向对象的本质有了一定理解,掌握了不同的编程思维,对同一个问题有了不同的解决方法。现在一只脚踏进了门,知道了在做什么、接下来该怎么做。在这个学习的开始,我领会到算法不同的优越性带来的苦与乐,动手前先充分思考。
5. 老师课程建议
(1) 课上对课后作业讲解这一点我很喜欢,但实际上我们还有很多待解决或是待发现的问题。我建议可以一周收集一次大家最疑惑的问题,在课上或是群讨论中进行讲解、回答,让有问题的同学得到答案,没问题的同学共享问题。
(2) 老师可以在每节课结束的时候预告下一次课程的主要内容与关键知识点,让我们可以提前预习一下。
6.下一阶段的学习计划
(1)通过慕课提前预习
(2)看资料书,对老师课上讲的内容有更深的理解。
(3)PTA提前开始写,要比上一阶段作业的完成度、正确性更高。
浙公网安备 33010602011771号