JAVA学习感受

时间:2020-04-07 18:02:29   收藏:0   阅读:73

JAVA学习感受-19206133向珂正

0.前言:

JAVA面向对象程序设计课程于这一学期(大一下)开设,对于第一次接触JAVA的我无疑来说是一个巨大的挑战,在上大学之前我对于计算机编程语言是一概不知的,上了大学完全是从零基础开始学习。还记得小的时候接触过java(勉强能算是接触),那时候还是从按键手机里看到的java,那时候不懂,就看到一杯咖啡,还不时会以为是啥游戏

 技术分享图片

,直到上了大学才知道了有许多的计算机编程语言,如:JAVAC语言、C++Python等等。从最初学习C语言的第一个程序“Hello World!技术分享图片

到现在JAVA面向对象程序的编写,我经历了从满脸问号什么也不懂到现在我自认为算是摸到编程的门槛了,这期间这些“魔幻”的字母、符号给我施加的压力也是很大的。

经过从小到大学习能力的培养和自己总结反思,我自认为是一个接受新知识的能力不强的人,尤其是对抽象的东西,因此在刚开始学习JAVA时,我又感到十分痛苦,不能理解这串代码为什么要这么写,那串代码为什么又要那样写。况且由于疫情的特殊情况需要自学,很是依赖自觉性,而我也是个自觉性不强的人,因此开始学习JAVA的阶段没有跟上,后面看老师直播回放、看慕课、问同学才慢慢补了回来,虽然说现在也不是完全都懂,但从第一阶段以及三次作业的学习中,我学到了很多,比如属性、类、方法、对象等等这些概念,对JAVA有了基础的理解,也在一次次挠头抓耳中完成了一次次的作业,敲下了一个又一个字母,完成了一次又一次作业,总体情况自认为还行;第一次作业96分、第二次作业100分、第三次作业59分。

第一次作业是关于一些基础算法、boolean、数组、字符串的基本掌握和运用,但由于我的不细心导致有一道题有一个测试点一直难以通过,直到最后交作业的时刻也没能找出来,这是我自己的不细心、不耐心的表现;第二次作业是关于一维数组、数组传参和闰年平年的判断、计算等一系列问题的考察,我能100分完成我认为是很不错的,老师或者学长可能觉得这些代码简单但此时的我觉得这就是对我的挑战,我能完成便足够了!第三次作业和第二次作业无较大的差异,是在第二次作业上的加深和细化,更具有难度,第二道题我一直在Choice=1choice=2时运行出现错误,花了一天的时间找问题找BUG、和同学探讨,但由于基础不够,第二题还是没能在规定时间内做到全部通过测试点。令人十分遗憾。于是便直接影响到了最后两题的编写,下面是作业的一些截图:

 技术分享图片

 

 技术分享图片

技术分享图片

技术分享图片

 

 

1.作业过程总结:

①三次作业在我看来对于我们是很有用的,个人认为这三次作业是一个JAVA知识面逐渐拓展、难度逐渐加深的过程

②这三次作业能让我们从C语言面向过程的设计思路中逐渐转向面向对象的设计思路,就算达不到良好的面向对象的效果,但至少能让我们“嗅”到一点面向对象设计思路的气味,摸到一点“门框边”,例如第三次作业的后面两道题很有这个意味,这

对我们JAVA的入门有很大的作用,在编写代码的过程中,我们能体会到面向对象这样的全新的思路,非常的有益于思维的创新,但我自己在过渡到面向对象的这个过程中做的还不足准备也是不够的,在今后的学习中还要努力钻研。

技术分享图片

 

技术分享图片

③在作业中遇到困难时,大部分时候先自己构思,实在有困难便会询问同学、学长的思路和方法,然后上网查阅相关资料,在这样的一个过程中学习,会事半功倍,对于我个人来说,可能一道题目我不能把它完全写正确,也不能完全得分,但是以上提到的学习交流方法,我认为对自己对编写代码的能力和熟练度有很大的帮助,我认为写作业不是为了得分,而是找出自己的弱点并加以弥补,分数不重要,重要的是这个过程和事后的经验总结,下次在遇到类似的问题时如何处理和分析。

④这一学期我们开设了许多学科,由于JAVA算得上就是我们的专业课,在这上面花费的时间客观对于我自己来说不多,但与其他学科相比较是最多的,甚至于大于某一些学科之和。作业花费时间也是最多的,一个题目有时测试和找BUG能花费几天的时间。

⑤编程是一个严谨的过程,不能有半点错误,否则就和“千里之堤溃于蚁穴”一样,会因为有时的一个小错误导致整个程序无法运行,比如刚开始编程时,一个符号标点的错误,这样的小疏忽有时要花很多时间才能找出,这是非常考验耐心的,也是我们必须要攻克的问题,也是一个程序工程师应该具备的基本素养;在知识点上的问题就是在编写代码的过程中,常常有很多知识不知道其所以然也不知道怎么运用,这种相关知识技能的欠缺是需要通过后期的学习查阅来解决的;因此,对于以上问题,我们应具备耐心并且随时学习、终身学习。

2.设计心得

面向过程程序设计方法一般是运用用函数(过程)来描述和进行对数据的操作,但又将函数与其操作的数据分开;面向对象程序设计方法将数据和对数据的操作封装在一起,作为一个整体来处理函数与数据是否分离是他们之间的一个区别所在。面向过程程序设计方法以功能为中心来设计功能模块,维护较为繁琐,而面向对象程序设计方法以数据为中心来描述系统,数据相对于功能而言具有较强的稳定性,因此更易于维护。

②软件开发的核心问题之一就是实现代码的重用,而面向对象重用的是类,一种将数据和处理数据的过程及函数封装在一起的实体面向对象一个很大的好处就是数据和方法的封装,由此面向对象的三大特性----封装、继承、多态得到发挥。

③之前在网上看到一篇博客,里面是这么说的:“人可以砍树,这就是一种服务功能,有输入也有输出;它可以提供给外部,而行走,则是自我功能,没有输入也没有输出,外部环境和内部组织,以及环境数据和原料性数据之间的区别。从思维上来讲,面向过程更强调细节,忽视了整体性和边界性,但这与现实世界有很大的出入,因为现实世界中,这种过程都不是孤立存在的,而是从属于某个对象,因此,面向过程虽然反映了现实世界的而一个方面(功能),但无法更加形象的模拟或者表示现实世界。”他在博客中还提到:“比如,你要吃饭这个动作,在c语言看来,你要先去买锅,煮水,买菜,洗菜等等一系列过程动作你才可以完成,而java这类提倡面向对象的思想,就是你要吃饭,那就让快递送过来。不关心你是怎么做的,我只要吃饭这个动作完成就可以出自CSDN博主「东方鲤鱼」的原创文章,看了他对JAVA编程思维生动形象的理解,我有一点点感同身受,我认为编程语言的发展,出现了那么多不同的语言,其根本目的就是为了方便、简化编程的任务,面向对象强调的是整体性且具有更强更简洁的对现实世界或者某一特定任务的表达能力,增强了编程的组织性、重用性、灵活性。便于我们的程序更好地为对象服务,增强程序的可用性。以下是在上课时记录的一些对于JAVA的理解:

技术分享图片

技术分享图片

 3.测试的理解与实践

①测试,是我们编写程序的过程中一个必做的操作,是对BUG的检测、对代码的严格考察,比如平常我们都在玩游戏,这个游戏出现BUG时,被玩家发现,会造成游戏很大的不平衡,从而影响玩家的游戏体验,这就是代码的问题,这对于一个程序是有很关键的意义的,在这个阶段的几次作业里,我在eclipse上编写代码进行调试,没能像题目里测试那么多点,于是每次刚写完代码弄到PTA里去提交的时候,第一遍从来没有全对过,总有一些测试点过不去,作业的正确性就大打折扣了。以上游戏的体验和我们作业的正确率问题这样的例子就反应了测试的必要性和严谨性,我们要做好测试,也还得努力!

②如果我来测试用例,首先我会从最基础的测试点出发,例如这次的作业中有求在一个日期后多少天或者前多少天的日期的题目,我便会按照正常情况下测试,比如某一个月中间的天数前后几天,然后再在每个月的衔接点进行测试,再在每年的衔接点进行测试,综上。我的总体思路便是,先正常测试,再考虑极端值,这样一点一点排查,是很奏效的。

4.课程收获

      总的来说,这学期学习JAVA的时间不长,加之疫情的特殊原因,学习的收获不是很多,但这段时间里,老师课堂的讲解、写作业、上网查阅、同学之间交流沟通讨论使我对于JAVA的认识更近了一步,了解到了它的深奥,有一句话说:“试一试,就知道水有多深”,说的真不错,接触到了JAVA你才会知道这门编程语言的魅力之处以及那令人挠头的难度,也让我认识到了,要想学好这样一门语言,只是满足于课堂和作业是完全不够的,还需要自己学习查阅资料,与业界前辈大佬们多多沟通请教才能至少慢慢做到入门,做到对这门语言的熟悉,对于我们现在软件工程的学生,多感受这些语言的习惯和方法,对于我们自身编程和设计构造代码的能力是非常有用的,可以说是大有裨益。当今世纪是网络信息化时代,我们便是这个时代里的主力军、先锋,我们若不努力,时代发展的车轮便会“碾”过我们,不让我们走在时代的前沿,只有努力好好学习软件这一大类,在未来的时代里,我们才能跟得上时代潮流,不被时代的车轮所淘汰,做到真正配得上“软件工程师”这个称号!网上都戏谑程序员秃头,这个行业的难度和深度确实配的上人们这么调侃,所以我们更要好好学,才能对得起自己掉落的头发,难道不是吗?这段时间的学习让我摸到了JAVA这门语言的门槛,相信在今后的学习中,在老师的带领下,能做到“推开门”、“跨进门”再到完全入门,相信这不仅是我也是每一个和我一样软件工程学生小白的由衷愿望吧!没什么好说的,只有加油吧!

5.对课程的建议

      作为一个大一的学生,很多人也和我一样,在上大学之前对于编程这些东西完全不懂,就是实实在在的小白,没有任何基础,当然也不乏有一些从小对这方面感兴趣的同学,这导致分化挺严重的,会的就很厉害,不会的就啥都不懂经,所以恳请老师在今后的教学授课中,能多多注重一些基础的知识,多精讲、少泛讲,毕竟厉害的只是少部分,如若您讲的太深奥或是太快,那和我一样基础不好的大部分人只能上课“坐飞机”了,如果经常这样那就会造成严重的知识脱节,影响这门语言的学习,所以老师您的引导对我们很重要,希望您也能仔细多了解一下我们的编程水平,再作出相应的教学方法,这方面您是专业的,我相信在您的带领下,这个时代里又会多出一批优秀杰出的软件工程师,都说“授人以鱼不如授人以渔”,您教给了我们方法,我们掌握了,给了我们端起未来饭碗的能力,真的会终身感激不尽!最后在这特殊的时期里,也祝愿老师和同学身体健康,生活幸福!

 

 

2020年4月3日

原文:https://www.cnblogs.com/xkznb/p/12653764.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!