0.前言正则表达式
本次博客是记录的第二阶段的做业(5-8周)。编程
此阶段主要为继承(图形的继承,抽象)。有了更多的实践题,更加贴近现实,更多相对较为困难的语法。框架
写这篇博客时,已经完成了6次pta上的做业。相对来讲,后面3次的困难比前面3次的困难要更大,耗费时间更久须要百度自学的东西也更多。函数
1.做业过程总结工具
(1)总结三次做业之间的知识迭代关系(3)做业过程当中遇到的问题及解决方法(5)对编程过程的严谨性的认识及教训:单元测试
第4次做业的第一题我学会了trim或者repalce方法去空格。split方法来进行分割。也较多的使用正则表达式。测试
但没有彻底的使用uml图里面的类和函数,致使主函数较麻烦,思路不清晰,错一块改一块。出错的时候不容易检查。较为明显的不适应去面向对象。spa
第五次做业的第二题较为有难度,是对String来进行求导。我认为较难的地方是字符串的分割(在哪里分割?怎么分割?)字符串求导以后的组合也较为困难。设计
在对输入进行检验的时候,运用函数不当致使main函数有124行。最后提交的时候,正则表达式也屡次出现错误。(每次写完正则表达式可使用https://regex101.com/进行检测),提升找错速度。对象
第六次pta更加的注重于抽象和继承的使用。更多的使用List和list的包含的一些方法。(好比能够用list.remove(0);移除list里面的第零个单元),第一题和第二题排序的时候没有用到collection.sort(),使输出较为麻烦。
(2)如何经过做业逐步理解面向对象的封装性、继承性与多态性三大技术特性:
封装:封装是面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,类一般对用户隐藏其实现的细节,这就是封装的思想,在Java中一般经过创建一个实体类,用来封装对象的属性和行为,经过setXxx()和getXxx()方法封装起来
继承性:简单来讲就是使子类的对象拥有父类的所有属性和行为,同时能够增添本身的所特有的属性和行为。这样能够节省写共同具备的属性和方法代码的时间,有利于代码的复用,这就是继承的基本思想。
多态性:简单来讲就是一个程序中同名的多个不一样方法共存的状况,一般使用方法的重载和重写(也叫覆盖)来实现类的多态性,多态性容许以统一的风格编写程序,以处理种类繁多的已存在的类以及相关类,多态的实现并不依赖具体类,而是依赖抽象类和接口,在多态的机制中,父类一般会被定义为抽象类,在抽象类中给出一个方法的标准,而不给出实现的具体过程,经过继承父类来实现,而比抽象类更方便的是将抽象类定义为接口。
(3)每次做业花费的时间比例:
第四次:第一题花费了2天左右。二,三题共花费一天。
第五次:第一题花费的时间为半天。第二题花费时间为2天。
第六次:第一题花费时间为1天,第二题为2个小时。
2.OO设计心得
(1)对面向对象三大技术特性之间关系的理解:封装得话就是私有得属性,可是外部又能够用getter和setter来进行访问,容易的修改类的内部实现。继承是使用已经存在的类(父类),新类(子类)能够增长更多的属性或者方法,可以使用父类的功能,子类也拥有父类的private属性和方法。多态就是指程序中定义的引用变量所指向的具体类型和经过该引用变量发出的方法调用在编程时并不肯定,而是在程序运行期间才肯定,即一个引用变量倒底会指向哪一个类的实例对象,该引用变量发出的方法调用究竟是哪一个类中实现的方法,必须在由程序运行期间才能决定。
(2)面向对象设计的基本原则理解(单一职责原则及“开-闭”原则):我认为单一职责原则就是一个类作一件事(只有一种功能),只有一个东西能够引发它的变化,若是职责过多的话,引发变化的缘由就越多,相互会产生影响。开放封闭原则的核心思想就是对抽象编程,而不对具体编程,由于抽象相对稳定。让类依赖于固定的抽象,因此修改就是封闭的;而经过面向对象的继承和多态机制,又能够实现对抽象类的继承,经过覆写其方法来改变固有行为,实现新的拓展方法,因此就是开放的。
(3)OO编程思惟的理解:把面向对象的这个东西当成一个实体,这个实体还有一些他的属性和执行功能的方法,同时它能够被子类继承,同时继续其余更高级的父类。 这里就包含了面向对象三大技术特性,封装继承多态性。
(4)类设计心得:输入,处理,输出。而“处理”又可由于不一样的方法,职责去继续设计其余的类。
3.测试的理解与实践
(1)测试对于编3.码质量的重要性:我认为是很是重要的,由于没有测试个人认识就只是片面的,也许可能会对,可是我认为大多数都是不全面的。并且写代码须要细心,一个小毛病就可能引起大问题,测试就是对于错误的处理有着一系列完善的措施。
(2)查阅资料,假设使用Junit进行程序的测试是否可行:可行,JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma创建,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。 JUnit有它本身的JUnit扩展生态圈。多数Java的开发环境都已经集成了JUnit做为单元测试的工具。也就是说junit就是别人写好的单元测试框架,使用此框架能够大大缩短代码的测试时间和准确度。
4.课程收获
写了这么多代码后,我以为应该先反复读题,反复去看uml图,理解每一个部分所在的职责。而后从大框架开始,再去处理小细节。
5.对课程的建议
(1)第三阶段做业难度、题量的建议:我建议题量和第二次的差很少就好,难度不该加!!!!!!!!!!!
(2)课程内容讲解方面的建议:每次都是写完代码才讲须要的语法和知识点,都已经百度完了,致使听课不专心,容易走神。建议没发pta以前就能够进行讲解。