public class GuessGame{
 Player p1;
 Player p2;
 Player p3;
 public void startGame(){
 p1=new Player();
 p2=new Player();
 p3=new Player();
  
 int guessp1=0;
 int guessp2=0;
 int guessp3=0;
 
 boolean p1isRight=false;
 boolean p2isRight=false;
 boolean p3isRight=false;
 
 int targetNumber =(int)(Math.random()*10);
 System.out.println("I'm thinking of a number between 0 and 9");
  while(true)
 {
  System.out.println("Numbers to guess is"+targetNumber);
  p1.guess();
  p2.guess();
  p3.guess();
  guessp1=p1.number;
System.out.println("Player one guessed"+guessp1);
  guessp2=p2.number;
System.out.println("Player two guessed"+guessp2);
  guessp3=p3.number;
System.out.println("Player three guessed"+guessp3);
if(guessp1==targetNumber)
{p1isRight=true;

if(guessp2==targetNumber)
{p2isRight=true;
}
if(guessp3==targetNumber)
{p3isRight=true;
}
if(p1isRight||p2isRight||p3isRight){
System.out.println("we have a winner!");
System.out.println("Player one got it right?"+p1isRight);
System.out.println("Player two got it right?"+p2isRight);
System.out.println("Player three got it right?"+p3isRight);
System.out.println("Game is over");
break;}else{
System.out.println("Players will have to try again");
} } 
}
}
public class Player{
int number=10;
public void guess(){
number=(int)(Math.random()*100);
System.out.println("I'guessing"+number);
}
}
public class GameLauncher{
public static void main(){
GuessGame game=new GuessGame();
game.startGame();
}
}
//显示错误为1.类GuessGame是公共的,应在名为GuessGame.java文件中声明。2.类Player是公共的,应在名为Player.java文件中声明

解决方案 »

  1.   

    你是不是这两个类都写在一个.java文件里了?
    一个.java文件里面只能有一个public class XXX{}要么抽出其中一个写在另外一个.java文件里,要么去掉不与.java文件名不相同的那个类的public关键字
      

  2.   

    把GusseGame和Player类之前的修饰符public去掉就行了。
    在一个java文件中只应把与文件名相同的类定义为public的。并且这个类一般应含有main方法。
      

  3.   

    记住文件名为:GameLauncher.java
      

  4.   

    java里面一个源代码文件可以存放多个类,但是只能有一个public class 类名{}
    估计是在一个文件里存放了上面的两个类,编译器不认的,
    要么分开到不同的文件中,要么改下访问控制符....
      

  5.   

        在java中, 一个源文件(.java文件)里面只能有一个修饰符为 pubic 的公共类。且这个公共类的类名要与源文件(.java文件)的名称相同。
        你三个类写在一个文件里,而且GuessGame类和Player类都加了pubic 修饰符,所以会出现上面的提示,你可以将GuessGame类和Player类前面的pubic修饰符去掉。
        你的main方法写错了:应该为public static void main(String[] args){...}