第三次作业总结

作业总结

1.作业过程总结

(1)最近的三次作业每次作业都是一题,相较于之前的一次多题的模式,现在则突出了少而精,准而难的特点。虽然是一题,却都是现实的应用类问题,更加贴近日常生活,也更加突出了Java的特色。最近三题的第一题是关于雨刷设计的,主要要求学生设计雨刷实现相应的功能,要求学生能对程序进行重构,考察了类的封装,类的继承,多态,抽象类和接口等问题。第二题是统计Java程序关键词出现的次数,要求实现输入一段代码,能统计出代码中所包含的关键词,需要用到Map,List,文件方面等知识。第三题是关于表达式求值的问题,主要考察Java中栈的问题和表达式的知识。这三道题都让我头疼,也让我受益匪浅,第一题我通过上网搜索资料,结合书本及老师的讲解,我大致能自己修改错误,做出大概的内容。第二题和第三题,我就开始吃力了,无法灵活地运用知识,对栈的概念一头雾水,也不知道如何处理问题。但是通过这三题,我更加明白了List的用法,知道了接口的使用,为我Java的学习累积了经验。

(2)最近,我也理解了一些概念,例如泛型:泛型的本质是参数化类型,即给类型指定一个参数,然后在使用时再指定此参数具体的值,那样这个类型就可以在使用时决定了。这种参数类型可以用在类、接口和方法中,分别被称为泛型类、泛型接口、泛型方法。例如栈:我理解的栈是一个储物罐,遵从先进后出的方式,栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

(3)在之前的三次作业中,我还认为Java的作业不会难,但是经过这三次作业,我认为我对Java的理解太浅薄了,进一步说,我对Java的知识点掌握的不熟,无法将知识点串联,以至于在处理这三次作业的过程中,我几乎没有思路。第一题我还可以勉强答对大部分内容,但是到了后两题,对于如何应用Java知识来答题,我就明显力不从心了。

(4)由于这三次作业我掌握的不熟,很多概念不清,导致我花费的时间更多了,第一题不算太难,整体思路还是比较清晰的,主要理解了接口的使用,会合理地创建方法,基本上就会写了,然而第二题,关于如何编写代码使得系统自动地显示关键词,就比较难了,第三题是关于计算输入的表达式的值的问题,也是有很多细节的问题需要处理。所以,这三次作业我花费的时间比值是6:2:2。

(5)通过这三次作业,我深刻地意识到了自己对于Java学习的不足,Java的学习是要通过日积月累的,不是一蹴而就的,因此,我们在电脑上多练习打代码的同时,还要多多地巩固老师讲的内容,多翻课本,多多复习。这三次作业的难度是非常大,它也提醒了我,要时刻地学习,不能自以为是。

2.设计心得

(1)封装可以隐藏实现细节,使代码模块化。继承可以拓展已存在的代码模块,它们两者的目的都是代码重用,而多态的目的则是接口重用。封装、继承、多态是相互依赖的,出现的顺序也是这样的,在实际项目中灵活运行,可以大大提高开发效率,避免不必要的工作量支出,同时也使得程序更加好维护,好扩展。

(2)面向对象设计的基本原则有5个。单一职责原则:就一个类因该有引起它变化的原因。开放封闭原则:类,方法等可以拓展,但不能修改。依赖倒转原则:针对接口编程,不对实现编程。里氏代换原则:子类必须能替换它们的父类。迪米特法则:类与类之间的耦合。

(3)  面向对象编程其实是一种设计思想,在程序设计过程中把每一部分都尽量当成一个对象来考虑,以实现软件系统的可扩展性,可维护性和可重用性。它满足三大特性和五大基本原则。

3.测试的理解与实践

(1)通过测试可以查找出代码中出现的错误,也可以查出代码的不足之处,通过测试,可以不断地优化代码,从而最终得到一个既使用又节约内存的代码结果。

(2)Junit可以用于程序测试,Junit是单元测试的意思,Junit通过运行一组测试来自动测试实验是否正确。使用这种方法的一个好处是,可以对每个单元进行彻底的,独立于其他单元的测试。它允许复杂的,正确的系统进行灵活的,有机的演化。

4.课程收获

从第一次作业到现在,随着作业难度的提升,我学到的知识也在提升,这使我感到十分欣慰,因为即使作业有时候难到我没有思绪,我还是能从中学到些东西。Java是需要我们这些学生付出很多精力的一门课程,它的学习不光要用心,更重要的是耐力。从简单的程序输出“Hello Java”到现在处理一些复杂的问题,我虽然掌握的不好,但是我确实有所提升,确实学到了Java的知识,这使我感到骄傲。

5.对课程的建议

我认为线上教学,线下教学肯定是有它们的优缺点的,但是,我认为,线下教学肯定是更好的一种方式。毕竟,线下教学,是学生完全暴露在老师面前的。我认为,本学期采取的线上教学,确实也是一个创新的教育方式,但它更需要师生的一种默契,突然的线上教学不会使学生那么容易适应,而且,相对于线下教学,线上教学中,师生的互动肯定要少很多,这也不利于学生的学习。但是,这学期的线上教学,我认为还是比较成功的,设备等硬件问题都没有,学生可以听的很清晰,中途的下课时间也可以给同学们思考的余地。

posted @ 2020-06-10 18:52  边翼  阅读(81)  评论(0)    收藏  举报