Java学习总结2.0

前言

学习Java也快有一个月多了,Java语言的基础部分已经学习的差不多,中间老师布置了三次大作业我也敲了很久。虽然说刚刚入门,但是在写这些作业的过程中我也有一些心得体会,孔子说学而不思则罔,思而不学则殆,所以我也就在这里为之前的学习作业做一个总结并对以前所学的知识做一个梳理。

作业过程总结

    1.三次作业的知识迭代关系

      在这些天的学习过程中我陆续写了三次作业,第一次的作业都是基本语法的考察,第二次的作业是对于不同方法的构写,第三次作业是对不同的类的调用,这三次作业也可以说是Java语言的三个层次(基本语法—方法—类)。目前我所学习的Java语言的基础部分包括:Java的命名规则,基本的数据类型,类、对象的特性以及构造函数。在学之前我还学习过C语言,对比之下这些基础的语法看起来很相似,又有一些不同比如:类、对象。类,是对我们现实生活的描述,也可以理解为许多相同或相似的食物的综合;对象,就是这类事物中实实在在的个体。早在刚开始的几节课的时候我的老师就在一直强调“面对对象”这个概念,我对于此还没有什么特别的感受。C语言称为面向对象的语言,在它里面是没有类的概念,通过两种语言的对比可以看出面向对象和面向过程的不同之处。

第一次的作业都比较简单。比如下面的题目,判断输入坐标是不是在矩形框内。第一步先比较横坐标然后比较纵坐标,最后输出结果就可以了。这样简单的语法构建主要是在练习Java语言的语法基础(包括for循环,选择结构switch-case,选择结构if-else,数组等)。

eg1:从键盘输入一个坐标点(x,y)的值,判断该坐标点是否在中心点在原点(0,0)、长为10、宽为5的矩形内。请编写一个程序,从键盘输入一个坐标点的横坐标及纵坐标的值,输出判断结果。(第一次作业的其中一道题目)

第二次作业的题目相似性很大,有好几道题目都是关于日期的。在这份作业中只要将第一次写的代码新添加不同的方法就可以直接使用因为这几个类的静态属性都是一样的,只是依附于这个类的动态属性不一样。在面向对象里这叫方法,在面向过程的语言里叫函数,但实际上函数就是方法,方法就是函数。在这两个阶段C语言与Java语言基本上是一致的。第三次的作业侧重于不同的类的调用,这也是与C语言不同的地方。通过在相同的类与类之间建立复杂的关系来凸显出面对对象的与众不同。

    2. 通过作业逐步从面对过程过渡到面对对象

这三次作业也清晰展示了从面向过程到面向对象的这种变化,即从方法到类的一个跨越。尤其是类名的命名,可以清晰的感受到面向对象思想的思维,在解决一个问题的时候,面向对象会把事物抽象为类的概念然后建立类名,具体来说就是这个问题里面有哪些对象,然后给对象赋予一些属性和方法,然后让每个对象去执行自己的方法,由此问题得到解决。

    3.作业中遇到的问题及解决办法

扫描二维码关注公众号,回复: 11159107 查看本文章

在这几次的作业主要出现的问题大都是算法的问题,很多的测试点都没办法通过,编译基本都不会出现问题,所以只能根据测试点的提示去逐一排查。

4.每次花费的时间比例

因为这些题目为了体现Java的层次结构,题目都很类似,所以每次作业花费的时间都差不多,代码一小时,debug一整天。

5.对编程的严谨性的认识及教训

编程的严谨性就体现在能不能通过编译,能不能通过测试点。通过jdk的帮助编译错误还是很好解决的,但是测试点能不能通过不仅要靠清晰的算法更重要的是你对数据各个方面的考虑。严谨缜密的编程能省下大量的时间,尤其是代码的数量多起来的时候,如果仅仅是因为一点小小的错误而耽误时间,这消耗的还有你对这门学科的热情。在写代码的时候一定要心态平和,如果发现自己深陷其中又实在写不出来,不建议死磕,Java的类有十分清晰的属性与方法保持调理清楚很重要。

OO设计心得

   1.面向过程与面向对象的比较

关于这两者的不同我看过很多种说法,最令我印象深刻就是这个例子:

面临的问题:  洗衣机里面放有脏衣服,怎么洗干净?

面向过程:

                    1 执行加洗衣粉方法;

                    2.执行放洗涤剂方法

                    3执行加水方法;

                    5 执行放衣服,洗衣服方法;

                    6执行清洗方法;

                   7. 执行烘干方法;

面向对象:

           洗衣机: 加入一些属性和方法  洗衣服方法  清洗方法  烘干方法      

人 :加洗衣粉方法  加水方法

解决方法:人.加洗衣粉,人.加水,洗衣机.洗衣服,洗衣机.清洗 ,洗衣机.烘干

    一个是先抽象出对象,然后用对象执行方法的方式解决问题;一个是拆成一个个方法,通过一个个方法的执行解决问题。这两者之间的差别显而易见。

   2.面向对象设计的基本原则

   3.OO编程思维的理解

OO编程的特点在与它的独立性,从具体问题中抽象出一个个不同的对象,就像是在赋予生命一样,每一个类每一个对象的创立已经超越了我们需要解决的问题本身。

测试的理解与实践

   1.测试对于编码的重要性

代码需要测试来肯定它的价值,一个无法通过测试的代码,就是一串乱七八糟的字符而已;同样的,代码需要测试来完善它,一遍是很难写出完美的代码的只能通过一遍一遍的测试来修正来达到预期的目标。在各个作业之中仅仅只是一句简单的print输出Wrong Format就能够得到分,这无疑肯定了测试的重要性。

   2.查阅资料,假设使用Junit进行程序的测试是否可行

如果让我来设计测试样例大概会尽量多设计一些,基本的测试样例就是临界状态以及特殊值,这样的测试已经算是很完善了,但是这样也很容易通过针对这个点来取巧。

课程收获

   这几次的作业都是有完整的类图,这大大节省了写代码的时间,这些类图也向我们展示了面对对象设计的基本思路,也严格的体现了OO设计的基本原则,加强了我们对Java设计的理解。

   现在已经在家里待了好几个月,本学期也就快要过完了,这对我自己的毅力是一个很大的考验。一个人在家里真的很难不让人懈怠,这第二阶段有一次作业没写完就是因为不断地拖延时间导致时间来不及。这一阶段对我来说最大的收获就是对于自己耐性的锻炼,端正好自己的学习态度,开始适应疫情下的学习状态。   

对课程的建议

老实说我觉得现在的上课模式很好,直接通过完整的代码来讲解知识点,这样做便于理解再辅以课堂练习现场操练加速记忆,很适合我学习Java。

Java基本结构已经很清晰了,接下来可能会学习其中的一些特殊的类便于灵活的书写代码,唯一的建议就是希望老师布置大作业的时候手下留情。

猜你喜欢

转载自www.cnblogs.com/life-lp/p/12811038.html
今日推荐