Java第二单元作业总结

前言

        第四次作业包括水文数据校验及处理、蒙特卡罗方法求圆周率、图形的继承;第五次的作业包括图形的继承和多态一元多项式求导;第六次作业包括图形卡片排序游戏、图形卡片分组游戏、求素数。这三次作业涉及的知识点有正则表达式对数据合法性的校验、继承、多态等。

一.作业过程总结

  1.第一周的题目较为简单,易操作,分别为计算税率,判断坐标点所在范围,电话键盘字母数字转换,判断三角形类型和统计最大数出现次数。只有一个public,主要代码都在一个Main函数里面。跟我们前期所学的C语言没什么区别,有些题目甚至可以用C语言来回答。但在第2次作业中,用到了两到三个,甚至更多的方法。求一元二次方程,判断闰年及星期几,求下一天和求前n天,这些题目都包含了多个方法,并且越来越复杂。

  2.可以说,在前期做作业的时候,我用过c语言去调试,但是很明显的是C语言不足以让我更好的完成作业。因为Java、C++等语言都支持类和对象,所以使用这些语言编写程序也被称为面向对象编程,这些语言也被称为面向对象的编程语言,C语言因为不支持类和对象的概念,被称为面向过程的编程语言。而我所做的作业中都包含了类和对象在里面,就不可避免的要从面向过程过渡到面向对象中来。

  3.作业中遇到的问题。这三次的作业前两次都比较简单,根据以前学的C语言知识都大略可以明白,而且涉及到的都是课堂上讲过的比较简单易懂的东西,只要认真听讲,课后稍加练习便可弄明白。最难的是第3次作业,它设计了好多个类,DateUtil,Year,Month,Day。都是面向对象设计的。包含了默认构造方法,带参构造方法,还有很多类共有的属性,比如set get。还有他们各自方法所具备的功能,可以说很复杂很复杂。

  4.每次作业花费的时间比例。可以这么说,在家里学习远比不如在学校学习所来的效率高,所以要花费的时间就要更多才能去掌握。以我来说,上网课无可避免地会走神,会被家里人其他的人或是分散注意力,导致效率不高。我相信大多数人都是这样,但正因为这样我才用了更多的时间,更多的精力去看回放去做作业。可以说作业花费我的时间比例还是挺大的。因为疫情期间也不能出门,又是乡下,所以空闲时间还是比较多的,所以也就有了更多的时间去学习。

  5.对编程过程的严谨性的认识及教训。在作业的编程中调试点以简单直观的问题为切入点,通过分析问题、设计算法、编写程序、调试运行,让我对算法和程序设计有一个感性的认识,并激发了我的学习兴趣,让我想要攻克一个个的难关样的。很刺激,但有时候又真的很奔溃。

二.设计心得

  1.面向过程与面向对象的比较。实际上,面向对象只是面向过程的升级。在C语言中,可以将完成某个功能的重复使用的代码块定义为函数,将具有一类功能的函数声明在一个头文件中,不同类型的函数声明在不同的头文件,以便对函数进行更好的管理,方便编写和调用。在Java中,可以将完成某个功能的代码块定义为方法,将具有相似功能的方法定义在一个类中,也就是定义在一个源文件中,多个源文件可以位于一个文件夹,这个文件夹有特定的称呼,叫做包。

  2.Java中类的特征内容。在Java 类的定义规范里面,有两方面内容来对应类中的数据和行为:①属性:用来描述对象的数据元素称为对象的属性(也称为数据/状态)②方法:对对象的属性进行的操作称为对象的方法(也称为行为/操作)。面向对象设计在软件执行效率上绝对没有任何优势,它的主要目的是方便程序员组织和管理代码快速梳理编程恩路,带来编程恩想上的革新。

  3.类和对象是面向对象编程思想中的核心和基础。主要思想是把构成问题的各个事物分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描述一个事物在解决问题的过程中经历的步骤和行为。对象作为程序的基本单位,将程序和数据封装其中,以提高程序的重用性,灵活性和可扩展性。类是作为对象的抽象而存在的,所有的对象都依据相应的类来产生。

三.测试的理解与实践

  1.测试对于编码质量的重要性。测试对于一个软件工程的项目来说是不言而喻的重要。测试的根本目的是尽可能发现程序中较多的错误,而提高目标系统的质量,但是提高质量不能依赖于测试,系统的质量是靠分析和设计出来的,而不是靠测修补出来的。而测试又是不可缺少的,它要根据需求进行。要尽量帮助,证明程序是正确的。老师的这些测试点都很有意思,既能让我们直观地看到程序的需求,又能让我们更好地理解。

  2.假如让我设计测试用例。在我看来,即便一个规模不大的程序,也不可能穷举出所有的输入数据。所以说测试的目的是尽可能发现错误。第1步应该包含正确的输入条件和不正确的输入条件,因为输入是你的程序最应该也是最开始具备的用户需求。然后就是功能测试,输入测试数据,测试项目所要求的功能性。然后从小规模转向大规模,测试这个项目中大部分的用户需求,得到分析报告。

四.课程收获

   在这三次的作业中,深刻地诠释了Java是面向对象的程序设计语言。那么,什么是对象?通过我目前的学习来看,无论是实体,还是一些虚拟的东西,都可以称之为对象。Java作为面向对象的编程语言,意味着可以把任何形式的内容转化为编程语言进行软件开发。虽然我现在还做不到这么的高级,但是通过这五六周来的学习,我认为这才是我们学习这门编程语言的目的,使得程序和现实世界中的实体达到一致。关于代码编译这方面,我认为通过修改别人的代码来学习语言是最快最有效的方法,站在巨人的肩膀上。学期刚开始只会对着课本打代码,起初自己完全不会编写程序,慢慢从修改一行到添加一部分,再到自己编写,这是个循序渐进的过程。这其中最重要的是从模仿到自己去编译的过程,也是最耗时间最能锻炼编译能力的部分。

五.对课程建议

  因为疫情影响,所以我们都是在网络授课。明白的人都知道,网络授课肯定有优点也有缺点。最让老师担心的肯定是我们这些学生上课究竟学到了多少,他的效率有多高。所以我能给的建议就是在上课时多与学生互动,看下是否掌握了知识,还是囫囵吞枣一知半解的在这里听讲,但其实注意力并不在课堂上面。学语言不能糊弄,得会举一反三。

猜你喜欢

转载自www.cnblogs.com/loveyou00/p/12815107.html