自最初接触java到前一个节点从按照c语言的程序结构思想过渡到面向过程的思想,再过渡到面向对象的思想,再到现在又是将近一个月的时间,一个月时间的进一步学习与练习,让我从一个初级的小白更进一步。从上次的总结之后,我发现了如今学java更重要的点是要上课好好听老师讲课,这点与刚开始学java有着质的变化,刚开始学就算上课有部分走神,没有把老师讲的听清楚,继续往下听也都能听懂,作业做着也不是那么费劲;而从上一次总结之后,课程的东西渐渐变的新了,也更难运用了,讲重点时稍稍走神很有可能到后面老师讲的都听不懂。所以近期需要对于java这门课程需要把更多精力放在课上的听讲以及课下的趁热打铁。(对于课堂作业的认真完成和PTA作业的提交效率)
在这第二个阶段的学习中,PTA有三次大作业,第一次大作业里,第一道题这种形式还是第一次见,打开作业指导书之后就懵了,对于这种题目要求很多,而且没头绪的题,做了很久也没有什么成果,等到老师下一节课讲的时候才脑子里有了线路。
跳过了第一题之后我先做了第三题,第三题就比较简单了,考察的东西基本老师上课都讲了,也带着我们做了,设计了几个类,然后继承,在几个类里面写上各自需求的算法方式,前面写上继承的方式,在eclipse跑过答案正确之后,提交了十多次修改这道题就满分了。
转手到第二题,第一遍做的时候,题没有看清楚,题目中给了代码,但是我是自己从头写的新代码,还好是这道题要实现的目的不难,蒙特卡罗方法求圆周率代码主要也就是实现随机点的找法,像这种题,最好的方法就是去纸上画图,像做数学题一样,把点找到,算法写好,直接用编程语言写一下就好。
第一次大作业总体来说还好,主要锻炼的是继承,虽然第一题比较难,刚开始做了很久没有思路,但是在老师点拨之后还是有了想法。
第二次大作业感觉难度就加深了,因为这次作业的一节课中间我有走神,后面没听太懂,Array List类型没搞得太明白,所以这次作业废了很长时间,又请教了比较厉害的同学,才得以完成。
第一道图形的继承与多态,在开始做这道题的时候,其实并不是感觉难,拿到题之后,立马有了思路,因为这道题要实现的算法,图形的计算之前就接触过了,所以很快就把算法写出来了,用了继承的方式,写到了类里面,但是一运行,就出问题了,首先就是输入,题目的要求是一起输入之后进行判断计算和排序,但是我写的方法是一个一个输入,之后算出答案,汇总到一起。这就是没用到存储类的原因,后来去请教了同学,又学了储存的类,
最终上百次的提交量这题才得以解决。后面再看这道题的时候,感觉到,其实这道题主要就是考语法,而不是算法。
第二道题也是没有思绪,想不到该怎么做,见到题的第一感觉就是要用到string方式,后来也是结束后去找同学了解的方法。
最后就是第三次大作业,这次作业我先做了第三题,素数的那道题,接触到了算法的优化,以前找素数,就是用最初始的办法,从2开始一直到所求的数字一直循环,之后了解到直接循环到开平方根就可以了,所以第一次提交就是提交的循环到开平方根,但是这种算法运行超时,后面就了解到筛选法求素数,这种方法也成为了我所会的最优化的算法。
第一题和第二题相类似,有了上一次输入错误的教训,这次我把精力更多的放在输入上,毕竟上一次是同学教会的方法,所以这次我就自己开了新的数组法,把数据存到数组里,之后进行算法计算,输出的格式也费了好长时间,在eclipse上面运行的已经一点错没有了,也用debug把每一个循环都看了,没问题,提交之后还是错误,最后改来改去最后一个输出没空格,不过还好,两道题用了下午加晚上一会的时间完成。
感觉从上一次的总结到现在,对具体的java思想已经有了初步的了解和运用。在新的几次作业之中,学到了继承,和接口的运用。对于子类父类的了解,以及Java库中对接口的使用方法。虽然初有接触和运用,但是现在运用的还是不熟练,脱离了对照,运用的还是不熟,所以接下来还要把接口这里看一看视频,记一记概念。几次作业以及在老师的讲课中,学到了特别有用的一种检验
方式就是debug,debug对于算法错误的检验非常灵用,一般从循环的接口进入,把每个值都在运算一遍,就会找到错误的数据和方法。再有就是这几次提升难度的作业算法,摸索到了一种写图题以及难题的求算法模式就是在纸上画图,找数学公式。可以把一道java题首先当作一道数学题,在运用合理而且简便的方法验证出正确算法之后,再用java语言把其转化成程序语言。感觉到这种方法不仅仅在第一次写题的时候有用处,到后面改题的算法以及找出更优的方式(算法)解决问题都有很大帮助。
接下来的学习重点,一个是上课认真听老师讲课,跟住老师的步伐,再一个就是还要加深java基础,对基础概念的理解和运用,中国大学mook的java课还是要多刷一些,对于比自己水平高的同学还是要多请教请教。
Java作为我们的专业课,感觉对它的学习还是不能硬学,不能为了学而学,应该逐渐的把打代码,运用Java代码解决问题,培养成自己的一种爱好,一种习惯。在接下来的学习中,希望能更进一步提升自己。