第二次作业总结
- 作业过程总结
①总结三次作业之间的知识迭代关系:
这三次作业的难度整体来讲比前三次的作业高了几个级别了,所以所迭代的只是也变多了起来。首先在第四次作业里首次接触到了正则表达式,还有学到了类与类之间方法的调用,在第三小题初步接触到了类的继承。然后在第五次作业中,在第四次接触了类的继承的基础上,让我们学习了类的多态继承,并且在第二小题中也加入了正则表达式,让我们打牢上一次的基础。然后第六次作业就让我们在类的继承和多态性的基础上,加入了接口这一概念,并且第二小题是在第一题的加入了一些新东西,这让我们巩固了第一小题的知识。
②如何通过作业逐步理解面向对象的封装性、继承性与多态性三大技术特性:
封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。就是必须得加入set,get方法的方法。比如这次多个需要运算的数据在各个类里面都使用了set,get方法。
继承可以解决代码复用,让编程更加靠近人类思维。当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法,只需要通过继承父类中的属性和方法。这几次的代码中多次用到类的继承方法,这可以使得代码的复用性提高,
多态是指一个引用(类型)在不同情况下的多种状态。也可以理解成:多态是指通过指向父类的引用,来调用在不同子类中实现的方法。这个通过卡牌排序这道题目有很好的表现
③作业过程中遇到的问题及解决方法:
第四次作业的第一小题是我们第一次接触到正则表达式,所以我把它留到最后写,可是最后发现这确实比其他作业的难度高上好几个级别,所以最后没写出来也是比较可惜的,然后就是第二题的蒙特卡罗方法求圆周率 ,一开始听到感觉迷糊,然后百度才发现是使用随机数来求圆的半径。然后通过类的设计解决了这个问题。然后在第三小题发现类的继承出现了问题,所以我给每个子类的成员都加上了private,然后代码就顺利通过。然后在第五次作业的正则表达式因为没有去除空格导致错误,在加上”trim.()”便解决了这个问题。
④每次作业花费的时间比例:
因为第四次作业难度较大,所以七天都在写,而第五次和第六次较简单,所以比例为7/4/4
⑤对编程过程的严谨性的认识及教训:
这次实验让我对实验严谨性的认识又上升了一个阶段,就比如第五次作业的特殊情况“ 0”,我一开始不清楚具体情况便胡乱写输出导致报错,后来仔细才发现“0” 这个输入的区别,同样的还有第六题的第一小题和第二小题
,这些让我对特殊值的输入又有了深刻的理解。
2设计心得
①对面向对象三大技术特性之间关系的理解:
封装:对类里面的成员变量通过使用private修饰符进行隐藏,通过使用public 修饰符来编写它们对应的方法来进行访问和修改。这样做可以确保我们某些成员变量的密封性,只能通过方法来决定它们是否能被访问以及修改。
继承:继承属于类与类之间的一种很重要的关系。继承是指从已有的类中派生出新的类,新的类可以继承父类的成员变量和方法(private修饰符修饰的除外)的同时,还可以扩展自己的成员变量以及属于自己的方法。Java的继承只允许单继承。但可以通过接口(interface)来实现多继承。
多态:就是指一个父类引用(类型)在不同的情况下的多种状态。通过父类的引用去访问继承层次中子类的对象,调用子类重写父类的方法产生不同的操作(多态)。
②面向对象设计的基本原则理解(单一职责原则及“开-闭”原则):
单一职责原则顾名思义,即一个类或者一个模块只完成一个职责。
我在设计类时就出现过这种问题,如果让一个类去解决多个问题就会导致程序崩溃。
开闭原则可以提高复用性 在面向对象的设计中,所有的逻辑都是从原子逻辑组合而来,这样就不会导致总逻辑太多方法而崩溃了;
③编程思维的理解:
通过这几次作业我对编程思维又有了新的理解,首先分解,把一个复杂的大问题,拆解成更可执行、更好理解的小步骤,然后找出相似模式,高效解决细分问题。再聚焦最重要的信息,忽视无用细节。最后设计一步一步的解决路径,解决整个问题。
④类设计心得:
我觉得设计类的时候,你得提前画出各个类直接的uml图关系,这样你就可以先确定各个类之中的类成员和方法,这样在写代码时的思绪就会特别清晰,然后各个类之间的关系也会在uml上显示的特别清晰,所以这样就比较容易理清类之间的关系。
- 测试的理解与实践
①测试对于编码质量的重要性:
测试对编码质量是非常重要的,首先语法错误会被编译器排除,然后逻辑错误就只能通过测试来判断出来,所以测试就是对编码质量的最高检验。
②查阅资料,假设使用Junit进行程序的测试是否可行:
可行。
4.课程收获
总结这四周来在OO方面的教训及收获:
教训就是得对一些特殊情况多考虑各种情况,以便可以通过测试点。
5.对课程的建议
①第三阶段作业难度、题量的建议:
我觉得第二阶段的题目量和难度就特别适合,所以我觉得第三阶段也可以出这种一次大作业两道题的模式,第二小题是在第一小题的基础上做一些延申,因为这样可以让学生巩固之间的代码。
②课程内容讲解方面的建议:
我觉得老师的讲解模式特别好,如果要说点建议的话,我觉得老师可以提前一天把上课要讲的内容和代码发我们,然后我们就可以提前自己预习。
浙公网安备 33010602011771号