面向对象程序设计课程总结
前言
——这篇blog是本学期面向对象程序设计课程的最后一篇博客,主要内容是对于这门课程的感想
一.对于第三阶段作业的总结
1.第三阶段作业包含两次作业,包括Java关键字计数和表达式计算
这一阶段开始,题目不再包含类图,需要自己设计类。不过从题目的难度和最后程序的体积较前一阶段作业有了明显的降低,类之间的关系较为简单,逻辑也不是很复杂
第一次作业是Java关键字词匹配计数,题目要求为编写程序统计一个输入的Java源码中关键字(区分大小写)出现的次数。从最后的完成情况来看,没有正确的,经过多次测试,发现最后一个测试点和注释测试点之间可能有冲突,当注释掉判断注释部分之后,最后一个测试点能够通过,但添加了判断注释功能之后,最后一个测试点不能通过,提交更改了非常多次,都无法通过。由于无法看到测试用例,只能猜测问题出在哪一部分,经过大家多次讨论,认为应该是注释的问题
最后一次作业是表达式计算,可能是这门课程使用到的较难的一个算法了,难度有一些,牵涉到了数据结构课程的部分内容,这部分内容在数据结构课程中也算是较为难的了。这道题目的设计思路是:
先使用正则表达式,对于输入的表达式是否合法进行判断,同时对字符串进行处理使他符合处理程序的需要。处理程序的主要逻辑是使用两个栈对数值和符号进行处理,具体方法可学习数据结构课程,最后对分离出来的表达式进行计算。将计算结果引入输出程序进行处理并输出。
这次作业的测试点没有什么太大的难度,经过几次修改之后很轻松的通过了
这一阶段的作业,难度不高,主要考察的是程序设计的能力和算法能力。
2.每次作业花费的时间比例
两次作业的时间比例为2:1,第一次作业主要时间花费在最后一个测试点上
3.对编程过程的严谨性的认识及教训
由于没有类图,需要自己设计类,所以类的设计必须谨慎,一旦耦合度太高,在更改程序时极其难以修改,所以在设计类时就要考虑到之后可能出现的问题。
二、对于这门课程的总结
1.学习过程
这门课程最开始,学习了Java语言的语法。可能是由于之前已经学过C语言的缘故,语法讲的并不是很详细,从一开始就开始讲类的设计方法和设计模式。之后讲了面向对象的三大特性,这也是面向对象编程方法中最重要的部分了,讲了很久,题目也较多。面向对象三大特性包括封装、继承,多态
封装
封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承
继承可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
多态性
多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,允许向上转型和向下转型。实现多态,有两种方式,覆盖和重载。覆盖和重载的区别在于,覆盖在运行时决定,重载是在编译时决定。并且覆盖和重载的机制不同。
①面向过程与面向对象的比较
面向过程思路直接,按照步骤一步一步完成所需任务即可.面向过程是对任务和事务的抽象,不是按照步骤,而是通过各个不同部分\不同对象之间的关系来完成任务.
第二,面向对象需要思考好类的设计,如果类设计的不好,程序的耦合性和复杂性会非常的高
面向对象设计的基本原则
1. 单一功能原则:一个类或一个方法,应该只敢一件事情
2. 开闭原则:在设计的过程中,应该逐步抽象出更高级的抽象,在新功能或者调整出现时,只需要扩展和很小的修改,尽可能的减少修改.
面向对象是对世界的抽象,它将存在的事务抽象为一个类,这个类具有属性和可以完成的功能.如人类:有身高性别年龄名字等等等属性,可以完成送外卖送快递搬砖写代码等功能.但是类不能帮你完成事务,需要一个实例才能.比如某一个人可以送外卖,但人类本身不能去送外卖,需要实例一个外卖员,才能完成功能.类只是个定义,干活的是对象.
之后学习一下IO流的操作和JavaFX图形界面的编程方法。某种程度上说,IO流讲的过于简单,虽然IO部分不是很难,但在日后的使用中还是很重要的,应该多讲一些。而JavaFX编写图形界面,JavaFX在实际中已经过时了,不怎么使用了,希望教学能与时俱进,学习新知识。
2.对于学习的总结
在学习这门课之前,我已经学习完了Java,已经学习了几个月的安卓开发和一些JavaWeb开发,所以这门课程对我来说难度很小,上课的时候并没有太仔细听,课下完成任务没有花费太多时间。这门课程最大的收获是对于Java基础知识的复习,已经对于很多知识有了新的理解,对于JavaWeb和安卓开发非常的有帮助。同时我借助上课时间学习了设计模式和Clean Code,对我的代码水平有了质的提高。
3.对于本课程的建议
由于疫情的缘故,这门课是完全在网上完成教学的,可能是第一次实践网课,所以很多地方不大完善。对于课程内容,希望能抛弃过时的东西,教更新更好用的东西,对于作业,希望不要设置过于复杂的测试点,主要精力应该花费在类的设计上。
以上是我对于这门课的总结。共计2085字。
posted on 2020-06-04 21:29 "HowYouDoing 阅读(617) 评论(0) 收藏 举报
浙公网安备 33010602011771号