当前位置: 代码迷 >> Eclipse >> 关于实例的有关问题
  详细解决方案

关于实例的有关问题

热度:39   发布时间:2016-04-23 14:12:59.0
关于实例的问题
[code=Java][/code]package t12.T.game;

import java.util.*;

public class Game {
Administration man = new Administration();
Computer ufo = new Computer();
public int compute;
public void showGame(){
System.out.println("★★★★★★★★★★★★★★★★★★★★★★");
System.out.println(man.name+"vs"+ufo.cName);
System.out.println("对战次数"+compute);
System.out.println("姓名:\t得分");
System.out.println(man.name+"\t"+man.jifne);[color=#FF0000][/color]//这个值为什么是空的呢
System.out.println(ufo.cName+"\t"+ufo.total);[color=#FF0000][/color]这个也是
if(man.jifne>ufo.total){
System.out.println("结果:恭喜您赢了!!");
}else{
System.out.println("结果:呵呵,笨笨,下次加油啊");
}
}
public static void main(String[] args) {
Game youxi=new Game();
Administration man = new Administration();
Computer ufo = new Computer();
Scanner in =new Scanner(System.in);
System.out.println("出拳规则:1.剪刀2.石头3.布");
ufo.choose();
System.out.print("请输入你的名字:");
man.name=in.next();
System.out.println(man.name+"VS"+ufo.cName+"对战");
System.out.println("");
System.out.println("是否进入游戏(y/n)");
String start=in.next();
while(start.equals("y")){
int admin=man.adminChoose();
int comP=ufo.countChoose();
if((admin==1&&comP==1)||
(admin==2&&comP==2)||
(admin==3&&comP==3)){
System.out.println("结果:和局,真衰");
}else if((admin==1&&comP==3)||
(admin==2&&comP==1)||
(admin==3&&comP==2)){
System.out.println("结果:你赢了,漂亮");
man.jifne++;
}else{
System.out.println("结果:你输了,咱可以继续");
ufo.total++;
}
youxi.compute++;
System.out.println("是否进行下一轮比赛");
start=in.next();
}
youxi.showGame();
}

}
代码输出null

------解决方案--------------------
程序可以有很多种实现方法,你原来的代码里面main里面新建了Administration和Computor这两个类,用户姓名和得分都是记录在这两个类里面

而最后的showGame()方法用的却是Game里面的私有变量,
Administration man = new Administration();
Computer ufo = new Computer();
这两个man ufo跟主函数里面的实际记录信息的两个对象实例不同,所以导致为null输出

我已经给你回过很多次了,你的Java基础太弱了,其实你要照着Java的教材一点一点学习,这种问题完全可以自己查的出来


探讨
跑了 结果也出啦i了。新手问问题,麻烦!
能说下为什么要把实例的对象放在方法里那,当参数来处理吗?
  相关解决方案