(1) 程序结构分析
首先,因我是留学生,前几周名字不在名单里,我无法登入面向对象课程设计的任何平台,于是完全无法参与前两个作业。而第三次作业是基于第二次作业,只是加上更多功能,自然也没及时完美完成,敬请谅解。我只看了一下关于第二和第三次作业的大概结构思想为同样坐电梯的第四次做好准备。
(2) 分析自己的bug
(3) 分析发现别人的bug的策略
这两部分我无法写任何详细内容。不过对测试别人程序我认为最好以及最简单的方法就是先从输入法下手。测自己程序的时候我一般也如此:
- 输入完全不对的语法
- 输入部分不对的语法 (比如说在电梯题目有 [FR, 1, UP, 0]四个输入,那就部分故意写错比如说加个空格,输入的数字不合理等等)
- 看看有没有WARNING因为虽然不凶可有时候WARNING反而是最难解决还导致百思不得其解的bug,然后根据有的WARNING做各种测试。
- 看看里面的内容有没有根据要求做的,比如继承关系,类的要求等等
(4) 心得体会
虽然说我没来得及参与那些作业,不过多少我也看了题目也有了自己的思想。首先我从高中已经开始学了C#因为我也在做自己的电脑游戏,用的工具需要Java或C#。当时Java我只接触了一点,而最多是C#因为我最终还是选了C#,不过我发现这两个语言在语法等等没太大的差距,只是有一些小小的区别,两个都是有很多functions library的语言,不像C。这样的语言对面向对象设计是有很大的帮助,毕竟我设计过游戏,对面向对象多多少少也有了解。其实像之前的那三个作业都是一个好练习,考的确实不是你对Java的了解,你基本上目前还不需要了解太深,因为你该了解的理论课上都讲了。真正考的是你对面向对象的理解以及处理方法。当时老师那样说的时候我还以为怎么可能不考我对Java的了解,毕竟需要用这个语言设计,但看了之后确实还不需要。
我觉得想要真正了解最好的方法就是你不要把事情想的太复杂,你只需要为那个Object好好想想,就像我做游戏的时候,C#也只是个工具,需要用的逻辑(当然还是需要)但不是那种复杂的逻辑,我都觉得设计游戏比当时刚学C的时候简单多了,因为当你的思想是针对Object的时候,你完全不会在乎你用的是啥语言,啥工具,都不重要。我设计游戏前都从来没碰过C#,做游戏是就是个C#痴直接用C#设计,结果也都能做到。我觉得这门课也是这个道理的。