OO第三次博客作业

0.前言
本学期的Java学习告一段落了,面向对象程序设计这门课程在我看来,能很大程度上锻炼学生的编程能力,通过本学期的Java课程,我感觉我的编程能力明显提高了很多。

1.作业过程总结

我们的大作业分为多个阶段,每个阶段层层递进,由基础到复杂,由面向过程到面向对象,通过点滴的积累,逐步理清了面向对象的思想并学习了面向对象编程。

由刚开始的类似于C语言的学习思路,来完成一些算法复杂度不高但需要细心的算法,主要是运用一些循环来对数据进行处理;

 

再到一些算法复杂度上有所提升的题;

再过来就是一些简单的类的设计;

 

 

再接着就是复杂的数据处理加上简单的思路,并且还要求要足够细心;

水文校验:

假定分水口门的数据上报时是采用人工输入的方式,每一行代表一个整点时刻的分水数据,各数

据之间采用 Tab(“\t”)进行分隔,每次可以输入多条数据,直到遇到用户输入“exit”为止,每

一行输入数据共包含五部分:测量时间、目标水位、实际水位、开度(包含目标开度和实际开度,以

“/”分隔)、流量。示例如下:

各数据格式要求如下:

① 测量时间:格式为“年/月/日 时:分”,其中年份取值范围为[1,9999],“年”非 4 位数时,

之前不加“0”,“月”与“日”为一位数时之前也不加“0”,日期与时间之间有一个空格,

“时”与“分”之间采用冒号分隔(英文半角),“时”为一位数时之前不加“0”,“分”

始终保持两位且始终为“00”(即整点)。注意:“时”数必须是 24 小时进制中的偶数值

② 目标水位、实际水位、流量:均为实型数,取值范围为[1,1000),小数点后保留 1-3 位小数

或无小数(也无小数点)

③ 目标开度、实际开度:实型数,取值范围为[1,10),必须保留 2 位小数,两个开度之间用“/”

分隔

 

 

再接着就是思路较为复杂,需要用到的结构比较多,对程序中各个类的各种职责要求比较高的题目;

 

 

 

然后再用到集合框架来写程序;

最后一次作业是写一个计算器,需要自学一点栈的内容,并且特殊情况考虑的比较多,对我们的细心程度也有一定的考察;

 

 

 

本学期的Java大作业相比以前的作业来说,难度上有很大的提升,通过这种大作业与教学同步进行的方式,我明显感觉编码能力有所提高,加上老师推荐的一些教学网站,在线上教学的基础上再适当地自学,本学期在Java这门课程上还是收获满满的。已经对Java常见的数据结构以及集合框架有较好的掌握了,对类的设计模式有了较为系统的了解,并且能够对一些Java问题用设计模式来解决问题了。
2.OO设计心得

总结:

通过本学期的面向对象课程学习,我已经从上个学期学习C语言的面向过程思想转变为面向对象思想。面向对象最主要的优势之一就是代码的重用性比较高,于此对应的就是各种设计原则,比如单一职责,面向修改关闭,面向扩展开放原则,各种模式,比如工厂模式,通过对这些井井有条的规则的学习,可以很明显的体会到Java设计出的程序的健壮和可维护的特征。

封装继承与多态的理解:

在讲类的封装继承与多态时,花了很多时间。封装是保证类是一个类的基本要求,没有封装好的一个类不能叫做类,而继承使得程序更具有重用性,符合面向对象的思想,多态则是让类更具有统一性,在处理大量数据时能够和Arraylist以及其他集合框架下的类结合使用,使得程序更加的简洁,避免了杂乱无章,对后期代码的维护做好基础。多态使得Java变得灵活起来的,可以在各种各样的类当中找到联系,通过这些联系把他们捆绑在一起,使得在使用时能够做到化繁为简,事半功倍。

Java集合框架:

同样,Java编程有很大的便利性,当要处理的数据比较复杂时,或者涉及到多种数据结构的类型时,Java为我们提供的数据结构和集合框架为我们提供了很大的便利。List,map,set等在我们处理大量数据时提供了很大的帮助。同样,在遍历·时,用iterator迭代器进行遍历也是非常方便的,当然,也可以用常见的循环来进行遍历,两者各自具有优势,要结合具体的题目来分析。

Javafx总结:

再接着就是学习了javafx,界面图形编程,通过javafx的学习,我们可以简单的制作出一些界面,运用pane来使得界面的多样化,

 

 

学完界面编程后,再进一步的学习了动画编程。

 

 

 

学习javafx,首先让我们对前端有一个初步了了解,为以后要学的css,js等界面编程打下了一个基础,同样,javafx也是一项全新的技术,并且也是Java当中的一部分,这对我们的编程能力以及对Java的理解来讲,同样是一次进步。

 

3.对课程的建议

①作业难度、题量的建议

本学期的Java课程上下来,感觉编程能力还是提高了很多的,如果要说建议的话,就是建议老师能在每次大作业后增加一个让同学们分享解题思路的活动,因为一千个人有一千个哈姆莱特,每个同学的解题思路也许会不同,通过这样的方式,我相信大家的思维能力能够得到更好的锻炼,解题的多样性也会逐渐发展起来的。

4.对未来的展望:

Java面向对象课程结束了,但是我们的面向对象学习之旅才刚刚开始,现在还处于大一的我们,以后还要面对web编程,JavaScript,css,,从这一点就可以看出Java基础的重要性,目前打好Java基础,就是为以后能够更好的学习各种专业知识做好铺垫。

posted @ 2020-06-06 15:41  CrazyCodeXiao  阅读(161)  评论(0)    收藏  举报