第二阶段oo编程学习总结
【前 言】
针对第二阶段oo编程的学习和作业所得到的一些自我思考和心得体会。
【作业过程总结】
- 经过了第一阶段的学习,我们已经基本可以感受到面向过程和面向对象编程的区别,更加深度的体会到我们现在学习oo编程的设计思路和设计框架。我们更多的应该去感受和练习的是整体框架的构建。封装性在最初接触java就已经较为熟悉了,在这几次作业练习中更多的是理解并练习继承性和多态性。
第二阶段第一次作业中我们首先开始了正则的学习和练习,正则是一个从小白到大神都会使用到的语法,所有的匹配都可以用正则解决,所以说这可以说是一个不难理解却也不容易掌握的部分。在这一次作业我们也初步应用到了java的继承和多态,以shape为父类,以circle、rectangle等图形形状为子类。
第二次作业中,延续了第一次的多态化应用,并更上一个台阶,不光只是一个父类多个子类的简单多态形态,解析一个表达式中多个部分的属性,构成多个不同属性且相对独立的类,构建多层继承关系。并且首次运用到了抽象类,对抽象类的理解更为深刻。
第三次作业,在提升多态设计复杂性的同时,第一次学习运用了接口这个概念,主要是对comparator接口的理解和使用。
- 封装从最初的接触java编程就开始应用, 这是面向对象设计的核心思想,将同一类事物的属性和方法封装成一个类,使其具有独立应用性。这些封装类通常对用户隐藏其属性和部分方法,仅有部分可视属性通过getter和setter来获取和修改,使得程序更为安全。继承是子类拥有父类的属性和方法,一个父类可以有多个子类。其实就是拥有同样一部分属性的多种事物,将他们拥有的相同的属性和方法作为父类,他们自己独特的属性作为子类。多态我认为就是以继承为基础的一种模式。比如圆形、方形、梯形...他们都是属于图形、他们都可以得到面积和周长,将这些特性封装为一个抽象父类,将他们自己作为子类。这不就是典型的多态性嘛。
- 基于在第一阶段的练习和学习之后,对于封装、继承、多态的不够理解,在这一阶段的练习过程中,还是走了很多的弯路。不过主要的问题还是一些理解方面,这种东西也不知道怎么说,就是没理解就很懵逼,没有思路只会照葫芦画瓢,一次次的百度之后,自己也慢慢地就理解了,也就形成了自己的一些思路,脑子里也慢慢就会有自己的框架了,问题也就迎刃而解了,剩下的就是将思路打出来,然后一些后续的debug,加上老师在实验课上面教我们eclipse上debug的使用,这也变得比较轻松了。
- 在对java语言的使用越来越熟练地过程中,debug的时间也相对的减少,主要花费在边敲代码边进行整体框架的搭建上。
- 取名字一定不要模棱两可,也许在初期编程里你还能在你短短的代码里记得他,可是随着代码越来越复杂,取的名字要是可读性太差,真的会增添很多理解过程中的问题。然后正则表达式一定要多多用括号来划分,不然真的很容易匹配出来你完全想象不到的东西!
【oo设计心得】
- 在面向对象程序设计中,封装、继承和多态是核心三大特性。封装是所有的基础,将一个事物属性和方法封装成一个类,这样形成的独立性使得类可以被多个程序使用,而我们也可以去使用别人已经创建好的接口等类,这让我们有了更多的选择,编程也更为便捷。同时封装起来的类,才能实现继承的功能,通过继承已经封装好的父类,就可以得到一个具有父类属性和方法的子类,并且可以对子类中的父类方法进行覆写。而一个父类可以被多个子类继承,这样我们就可以有多个子类继承同一父类,这个父类一般是一个抽象类;这样我们这些子类就有了部分类似的属性和方法,但又有自己独特的属性和方法,这样就形成了多态。
- 类的封装正是意味着独立性,oo程序设计也正是需要这种独立性以用来“组装”程序。类的单一职责的目的也主要就是为了实现类的独立性和更多变的可操作性,即一个类只代表一个属性,只做一件事。这样降低了类的复杂性,使得每一件事都有一个单独的类,操作性和独立性都大大增强。而开放封闭原则也体现了这种独立性原则,即对外可拓展,对内不可修改。这样的开闭原则意味着类可以实现继承拓展等操作,但是却不能修改内部已有的属性和方法,内部采用不可视原则。这样就可以既实现了程序的多样性和可拓展性,又实现了程序的安全、稳定和封闭性。
- 以人的目的去编程。把程序模块化,以组装的形式去写程序,以每一个独立的类为基石去搭建大楼。
- 之前是以适配自己的主程序为中心的目的去设计类,慢慢的就越来越考虑到类的独立性,以类自身的属性为出发点去考虑一个类的设计,用主程序去适配每一个类。
【测试的理解和实践】
- 测试毋庸置疑是程序是否可运行的核心环节,测试程序的质量甚至决定了程序是否真的可行。测试程序应当全面而细致,对整个程序的每一个点、每一处边界都要进行全面的检测,若是测试程序较为狭隘,则会导致在这个测试程序中运行良好,运行在别的程序中却是一塌糊涂。
- 有一定的可行度,可以对每一个单元进行相应的测试。
【课程收获】
对oo编程有了更多的认识和理解,之前只会对着类图去模仿设计,只会照葫芦画瓢;在经历了第二阶段的学习之后,在不看老师提供的类图的条件下,也可以有自己的思考、自己创建的类图了。
【对课程的建议】
- 作业难度和题量我觉得第二阶段的就挺好挺合适的了,需要去思考和琢磨,但又不至于太难;需要花费时间和精力去思考和debug,但也没用过多的时间。
- 没什么建议,感觉现在的方式对我而言接受度已经很高了。

浙公网安备 33010602011771号