错误积累:1、使用递归没有设置截止条件,造成程序不断自己调用自己,消耗大量内存。
2、调用方法时忽略了带有返回值的方法调用一次就生成了一个新值(蓝色字体处)
例如:
player.showFist();
computer.showFist();
////判断一局过后两者的输赢
//if(player.showFist()==computer.showFist()){
//System.out.println("很遗憾,这局中您和"+computer.name+"打成了平局");
//player.score++;
//computer.score++;
//}
//else if((player.showFist()==1&&computer.showFist()==3)||(player.showFist()==2&&computer.showFist()==1)||(player.showFist()==3&&computer.showFist()==2)){
//player.score++;
//if(player.score>2){//三局两胜制
//System.out.println("哈哈,您太厉害了,"+computer.name+"向您俯首称臣!");
//break;
//}
//System.out.println("哈哈,您太厉害了,您在第"+count+"局中战胜了"+computer.name);
3、参加if语句里判断的应该是一个已经确定了的变量,不能是未执行的方法(红的字体)
4、注意全局变量和局部变量的使用,即使调用某个其他类的方法是在该类的某个方法中出现的,若是本类其他方法中有需要时,那也要先将对象声明成全局变量(只“声明”对象成全局的好处:这样不仅使对象的作用范围变成全局的,而且可以确保调用方法时才生成对象,方法不调用,内存中就不生成对象,节省内存)
声明类对象的例子:
Player player;//玩家
Computer computer;//电脑
总结经验:1、写代码前要先思考并分析出所需要实现的功能、需要创建的对象、对象需要有哪些属性和方法。
2、代码书写时要加上注释,注意好分层,增强阅读性(美观一点更好,最好以文档注释的形式写出每个方法的作用,以单行注释的形式注释每个变量的含义)。
3、代码书写时最好先把要写的步骤以注释的形式在代码中标注,再像填空似的将对应的代码补全,这样可以避免因为代码太多忘记编写顺序(或漏写代码)
4、随着自己思路的变化,更改逻辑代码时一定要慎重,因为要是逻辑代码错了,错误很难找。
5、编写代码时不仅要考虑到是否能输出结果,还要考虑到代码的灵活性、简洁性和内存的使用情况等。
6、当代码出错时,一定要耐心修改,切忌因急躁而忘记思考,要相信每个运行结果的错误都是有原因的,慢慢找终会发现错误的,(调试对于锁定代码出错位置很好用,或者我们也可应充分利用输出语句来判断某段程序处是否执行)
7、调试代码时要多用几组数据进行测试,特别是边界数据