00第二单元作业总结要求

------------恢复内容开始------------

前言

  本次博客主要分为五个部分,其中第一部分为对第五、六、七作业过程的总结,第二部分为关于OO设计的心得,第三部分为关于测试的理解与实践,第四部分为从课程中得到的收获,第五部分为对课程的建议。

一、作业过程总结

  第五次作业中涉及到了新学习的的知识点正则表达式,但其主要内容还是继续巩固对Java对象的认识以及类的继承。第六次作业则是对类的继承熟悉运用的一个过程,第七次作业是继续对Java对象的学习,继而产生接口的使用和熟悉。随着学习的深入,这三次作业的难度明显提高,但难点并非在对新学习的知识点上,而是在程序的输入输出上,这就要求作为学生的我们要学会自主学习、积累知识、细心观察还要有耐心。

二、00设计心得

  在学习面向对象的过程中,我们首先便要对对象有一个了解,就像对人一样,首先得先了解人的外貌,身高体重和性别,这些人共有的属性,再其次便是对人的姓名,职业的人的私有属性的了解。面对对象便是基于这一些思想,将总的一群人,慢慢分化成一堆堆有着共同特点的人群。在通过设计解决一类人需求的方法,简化运算。

  在类里面,也有像人传宗接代似的继承关系。但每个人都是不一样的,哪怕是父子,也总有不一样的地方,而这在面对对象设计中即表现为每个类的私有成员,私有方法。子类可以继承父类的所有非私有属性,就像儿子可以继承父亲的遗产一样,但依旧有些东西是不能继承的。同样,不是每个父亲都是富翁,甚至有的父亲还在外面欠了一屁股外债一样,父债子偿。

  因此,在类中就有要求:

  • 继承:在多态中必须存在有继承关系的子类和父类。
  • 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
  • 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。

  在类里,没有定义具体函数的类叫抽象类,如果父类是抽象类那么子类就需要将父类中的函数具体化,就像父亲欠别人钱打白条,别人凭借白条来找儿子要帐一个道理。而接口可以看作是抽象类但和抽象类又有所不同。接口是对动作的抽象,抽象类是对根源的抽象。抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人,女人,这两个类(如果是类的话……),他们的抽象类是人。说明,他们都是人。人可以吃东西,狗也可以吃东西,你可以把“吃东西”定义成一个接口,然后让这些类去实现它.

  所以,在高级语言上,一个类只能继承一个类(抽象类)(正如人不可能同时是生物和非生物),但是可以实现多个接口(吃饭接口、走路接口)。

  1.  接口是抽象类的变体,接口中所有的方法都是抽象的。而抽象类是声明方法的存在而不去实现它的类。
  2.  接口可以多继承,抽象类不行
  3. 接口定义方法,不能实现,而抽象类可以实现部分方法。
  4.  接口中基本数据类型为static 而抽类象不是的。

  当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候,用接口。

三.测试的理解与实践

  测试对代码质量而言非常重要,无论是从代码的运行时间来测试或者是从代码的运行所需空间来测试,通常情况下,一段高质量的代码对空间,时间的利用率都比低质量的代码高,这种差距会随着数据变大而越来越明显。同时测试还是使代码尽可能的减少bug的出现,例如在特殊情况时的数据。在结果呈现时要更加注意输出,是否满足程序设计要求,避免反复检查程序。

  查阅资料后得知 JUnit测试代码的要求如下:

1、测试方法必须使用@Test进行修饰

2、测试方法必须使用public void进行修饰,不能带任何的参数

3、新建一个源代码目录来存放测试代码

4、测试类的包名应和被测试类保持一致

5、测试单元的每个方法必须可以独立测试,测试方法之间不能有任何的依赖

6、测试类用Test作为类名的后缀(非必须,代码规范需要)

7、测试方法使用test作为方法的前缀(非必须,代码规范需要)

  检验后感觉程序代码可运行。

四.课程收获

  这四周的学习,我知道了java语言和面向对象的编程思想,这种思想与面向过程是迥然不同的,面向对象是先需要去创建类,再去创建多个对象,最后将对象再组合在一起的结果,而面向过程更类似于环环相扣的感觉,因果关系明显,缺一不可,耦合度极高。在面向对象中出现了很多在面向过程中没有的知识点如封装,方法的构造,方法是可以重载的,但必须符合一些条件,不同的数据储存在不同的位置,如局部变量是储存在栈当中,静态变量是储存在方法区当中,而对象则是储存在堆当中,有些类可以公开而有些类又不是公开的,类中的数据成员也有不是公开的。以上只是我这四周学习到的一部分,也是java语言学习中的很小一部分,还有很多需要我去学习,去探索,我需要尽早地从原来C语言那种面向过程的开发方式过渡到java语言中面向过程的开发方式中来,不然就永远领会不到真正的面向对象的思维,没有理解到它的真正涵义,自然也无法很好的使用这门语言去进行编程,这是一个教训。

五.对课程的建议

理论课的反馈代码增加了,也更容易理解上课所讲的内容。

猜你喜欢

转载自www.cnblogs.com/zhangjun00/p/12819512.html
今日推荐