zoukankan      html  css  js  c++  java
  • 对Java课程的感想

    对Java课程的感想

    一.    前言

    随着最后一次作业的发布,Java面向对象课程已经接近尾声了,下面是我对Java面向对象这门课程的一些感想。

    二.本学期对Java课程的感想

         学习了一学期的Java课程,觉得是该总结自己的心得体会了。开始学习任何一门课,兴趣最重要。一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分,对它们的精华部分知之甚少,于是趁学校开设这门课,并且有自己的老师讲解,还有了上机的机会,比自己自学省事多了,于是鼓足信心,开始了漫长的java征途。
        还记得我編写的第一个经典程序“hello Word”。从那时起我已开始走进Java的世界。当时自己不是很理解为什么main方法一定要这样来定义public static void main,能不能不这样写?问了好多同学,他们告诉我的答案是一样的“java本身要求就是这样子的,但我自己不甘心,就进行了下面的好多操作:把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析:把main的public取掉,在试试看,报什么错误: static 去掉还能不能运行,不知道main方法是否一定要传一个String数组的,托String[]改掉,改成int,或者String试试看:不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。结果把Hello World程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。接着在以后的学习中我也采用这样的方法解决问题,却发现自己的速度比别人慢了好多,我就把自己的课余时间也分一部分给java因为基础是最重要的,只有基础牢固才有可能对后面的学习有更加深刻的认识。对一个最简单的程序也应该多去调试,多想想如果改动一下会出现什么结果?为什么必须那样写?多去想想这些问题然后去操作,会让你有更多的收获。这样反复地思考是很有用的。在学习Java的语法时,Java的语法是类似c语言的,所以学习的比较轻松。唯一需要注意的是有几个不容易搞清楚的关键字的用法,pubulic,protected, private, static.什么时候用,为什么要用,怎么用,和同学一起讨论了好久才得以解决。在学习Java的面向对象的编程语言的特性。比如继承,构造器,抽家类,按口.方法的多态,重载,覆盖,Java的异常处理机制。以下是我对三阶段Java大作业的一些心得。

    对于第一阶段的大作业,三次作业由简单到复杂,就是先让我们熟悉一下Java语言,所以通过第一次作业熟悉基本操作之后,第二次的作业也不会过于陌生,通过第二次这一次过渡的环节:在一个类当中用几种方法用来所要实现的功能;再然后是第三次就引入了面向对象的思想,跟着题目给的UML类图,写好每一个类的功能以及类与类之间的关系,能够较好理解并完成第二题,第三题就是需要理解好每个类的关系,就比如第三题当中的Year类,Month类,Day类,DateUtil类的关系,通俗的说就是一层包一层,Year类是最里面的一层,其次是Month类,Day类,再全收在DateUtil类当中算法第二题基本可以照搬,理解了第三题之后,第四题也就比较容易解决了。

    对于第二阶段大作业,课堂上的学习我们了解并掌握了封装性,并运用在了作业题目中。PTA发布的第四次作业第三题和第五次作业第一题的图形继承题,我们编写代码实现图形的继承,从而理解了面向对象的继承性。PTA发布的第五次作业第一题的图形继承与多态题,我们编写相关代码掌握了类的继承和多态性。在第一次作业中if else语句使用经常出错,导致情况不完整,输出答案出现错误,导致失分。第二次作业主要是在求日期的方法编写上花费大量时间,如求前n天后n天的日期,出现了跨年情况时没有考虑清楚导致出现13月的情况。以及求当前日期距离1年1月1日的天数出现了问题,导致答案错误。第三次作业存在运行超时的问题,通过询问同学,查找资料改进算法,变换求解思路从而解决了这一问题。

    对于最后一次的大作业,我的设计的框架类图显得不是很好,三大特性没有很好的一个体现,雨刷系统因为在课堂上讲过所以理解起来也是十分的简单,类的设计相比于题目给出的代码的也没有变多少,就是在之前现有的类基础上外加其他相似的类再多加几个功能上去,对于关键字提取的还是就设计了两个类,没有很好的遵守单一职责,一个类几乎把所有的功能都往里面塞,拆分关键字统计关键字,输入的数据的正确性判断都在一个类里实现了,后面思考一番还是在自己的ecplise里面做了一些结构的调整,遵守单一职责,即保证每个类的方法代码量简短,职责单一;最后一题呢,就是关于表达式运算的,因为题目省去了很多限制,所以写起来也不是很困难,类的设计也不用多复杂,还是考察了正则表达式以及对字符串的操作,还有就是复习了对上个学期数据结构i的栈的应用,老师发的PPT关于此方面的解决问题是后缀表达式的处理方式,和我之前数据结构所学到的方法不一样,我的操作是运算符和数字分别入栈,一边入栈一边按照优先级出栈计算再入栈,最后剩下的再出栈依次计算,最后数字栈栈顶就是结果。

    三.心得体会

    1.学习中,要养成良好的习惯(写括号时要成对,字母大小写要区分,单词拼写要准确)
    2.在学习的过程中,最好不是仅仅停留在java表层,不是抄书上的例子运行出结果就可以。要注意,即便对一个简单的例子也要有耐心去琢磨、调试、改动。
    3.在学习的过程中一定要动手做、试着写代码,而不是抱一本书看看就行。很多东西和体会必须自己动手才能真正属于自己。
    4.在Java的学习过程中,可能会遇到形形色色的问题不容易解决,应多去专业论坛了解相关的知识,书本上的知识有限。要会从网上搜索有用的信息加以整理,促进学习的深入和知识水平的提高。

    看了好多网上课程,说学到一定程度要尝试着自己做东西,但觉得自己仅仅经过一学期的学习,还远远不够, 希皇自己在以后学习中继续努力,能够真真正正拥有一门编程语言,对自己今后的发展起到作用。在学习java语言的同时,也让我学会了如何来发现问题,如何解决问题,怎样有效的学习等等,相信会对我一生都有帮助。

  • 相关阅读:
    牛客小白月赛6 G 指纹锁 set的自动排序 模板
    牛客小白月赛6 E 对弈 思维
    牛客小白月赛6 F 发电 树状数组单点更新 求区间乘积 模板
    杭电多校第九场 hdu6424 Rikka with Time Complexity 数学
    杭电多校第十场 hdu6432 Cyclic 打表找规律
    杭电多校第十场 hdu6435 CSGO 二进制枚举子集
    二进制枚举子集模板
    C# DataTable删除行Delete与Remove的问题
    java.io.NotSerializableException错误解决方法
    Git使用gitignore建立项目过滤规则
  • 原文地址:https://www.cnblogs.com/blued--/p/13051546.html
Copyright © 2011-2022 走看看