Java课程总结

0.前言

  本次博客针对Java这门课的PTA作业进行一个简单的总结,尤其是收获与建议。

1.作业过程总结

  Java这门课的PTA作业共分为三个阶段,三个阶段的作业由易变难,涉及的知识点也逐渐由浅至深,下面是对这三个阶段的作业的分析、总结。

①总结三个阶段作业之间的知识迭代关系;

  第一个阶段的作业(Homework01-03):第一个阶段的作业主要是对Java的·基础语法、类和对象的使用、类与类之间的聚合关系进行考察,让我们在做作业的过程中实现了从面向过程到面向对象的转变。现在看来,第一阶段的作业有的曾困扰自己许久的题目也不过如此,因为当初老师还帮我们设计出了类图,写了main方法,我们只需要“填空”。

 

  第二个阶段的作业(Homework05-07):第二个阶段的作业主要是对正则表达式,字符串处理,类的设计、继承、多态,ArrayList泛型的应用,Comparable接口中的CompareTo()方法及泛型的应用等相关知识进行考察,通过作业逐步理解面向对象的封装性、继承性、多态性这三大技术特性。

 

  第三个阶段的作业(Homework09-11):第三个阶段的中的每次作业都只有一道题目,但这既是最难的一个阶段,也是设计的知识点最多的一个阶段,因此下面对第三阶段的作业进行一个简单总结。

   第九次作业(雨刷程序功能扩展设计):这道题主要考察的是重构(即在第一种手动雨刷系统仿真程序的基础上,对工程进行重构,使其可以实现雨刷系统类型的扩展),运用到的相关知识有类设计及类间关系、面向对象的三大特性、接口与抽象类,同时需要使程序在符合单一职责原则、迪米特法则、合成复用原则的基础上具有良好的扩展性(开-闭原则)、里氏代换原则、接口隔离原则及依赖倒转原则。

   第十次作业(统计Java程序中关键词的出现次数):这道题主要考察的是List、Set、Map、正则表达式、字符串处理以及接口的使用。

   第十一次作业(表达式求值):这道题主要考察的是栈Stack、正则表达式、字符串处理。学习了这么久,不论是在C语言中还是在Java中,对栈都没有进行深入了解,这也是我第一次运用栈来解决问题。

②第三个阶段作业过程中遇到的问题及解决方法

  遇到的问题:在第十次作业中,不清楚List、Map的使用,也不知道怎么去处理注释、字符串中出现的关键字,说到底还是对正则表达式的运用不够熟悉,在前面的作业中只要涉及到正则表达式就觉得好难,就产生了一种抗拒心理。

  解决方法:在慕课上将List、Map再次梳理了一遍,又在网上看了很多关于正则表达式的视频,最后还是没能将这道题做出来。

 

  遇到的问题:在第十一次作业中,其实这道题最核心的也最陌生的就是栈Stack了,对栈的使用不太清楚。

  解决方法:在网上看了很多相关代码思路上还是有些模糊,感谢老师做的PPT,让我对这道题的思路更加清晰明了。

③第三个阶段每次作业花费的时间比例

  第九次作业大概花了7个小时左右,第十次作业大概花了两天,第十一次作业大概花了一天半,三次作业的时间比例1:7:5。

④对编程过程的认识及教训

  通过这学期对Java的学习,我认为无论题目是简单还是复杂,一拿到题目就急着敲代码都是一种非常不好的行为,碰到简单的题多想想怎么能达到“最优解”,难题就更不用说了,静下心来分析,多设计类图梳理自己的思路,这样能避免在编程过程中的很多失误。其次就是自学真的是一辈子必备的能力,俗话说的好“师傅领进门,修行在个人”,加上我们这行的特殊性,需要一直学习才能不被淘汰。还有就是不能产生畏难心理,有困难就更加要迎难而上,否则一旦逃避一次你会发现这就会像在寻捷径的路上始终会有一座高山,翻一座才会少一座,这是永远都绕不过去的。

2.OO设计心得

①对面向对象三大技术特性之间关系的理解

  封装性:我认为就是一个盒子,所有的对象(都设为private的)、方法都被装在这个盒子里面,其他类只能通过get、set方法对这个盒子里的对象进行操作;

  继承性:一个类继承另一个类就是说这个类属于另一个类,具有另一个类的所有属性和方法,同时它还可以有另一个类不具备的方法和属性;

  多态性:一个父类对象可以有多个子类对象,而这些子类具有不同的方法,也就是说可以表现出不同的形态。

②对面向对象设计原则的理解

  面向对象设计原则提高了程序的可维护性、可复用性;属于指导性原则,并非强制性原则;是用于评价一个设计的使用效果的重要指标之一。
③OO编程思维的理解

  万物都是对象;有相同的特征可以抽象为类、接口;类具有封装性、继承性、多态性。
④类设计心得

  在设计类时,要先划分类的功能,再进一步划分类中各个方法的用途,做到单一职责原则。

3.课程收获

  在Java的学习过程中,收获挺大的,特别是编程思想方面,从面向过程转向面向对象,从以前的一拿到题目就准备动手敲代码到现在的拿到题目不会着急敲代码,而是理一理思路和这个题目;学习了很多的设计模式,比如简单工厂模式、单例模式、桥接模式、观察者模式等等;还学习了很多的设计原则,比如单一职责原则、开-闭原则、里氏代换原则、迪米特法则等等……

4.对课程的建议

①对作业的建议

  说实话,对于我来说PTA上的几乎每次作业都并不简单(应该是我太菜了)。在每一阶段一次作业结束后开始新的作业时,对两次作业间的知识迭代的感受就非常深刻,特别是在上一次作业完成得不好的情况下,但又没有正确代码示例或者关于作业的类图,其实对完成作业影响挺大的,我知道这不是作业完成得不好的理由,但是在作业结束后如果能把正确代码或者类图给我们看,会有助于我们能力的提高,毕竟学编程最好的方法就是多看别人写好的代码,多去照着自己想实现的方向改动代码。
②课程内容讲解方面的建议
  希望老师能在讲课过程中对知识点进行讲解时多结合一些例子给我们讲,这样会有助于我们对知识点的理解和掌握,不然可能课后做作业时才发现自己连一些知识点怎么用都不知道;对书上有的可以一笔带过,而且可以在每节课结束时给我们大概说一下下节课可能会涉及到的内容,这样我们能够提前预习,会在一定程度上提高我们在上课时对知识的接受程度以及速度;在讲完一些知识点后可以给我们适量的布置一些需要那些知识点的小题目,这样会有助于我们做每次的PTA上的作业。

 

 

 

posted @ 2020-06-10 10:34  一枕星河  阅读(229)  评论(0)    收藏  举报