Java猜谜游戏
Hy 我对一本书中的一个代码有问题,这本书的标题是Java。。。 (第63/64页) 我重新编写了代码,但它不起作用。有人能解释一下那是什么吗 我在Eclipse中遇到的错误是:Java猜谜游戏,java,Java,Hy 我对一本书中的一个代码有问题,这本书的标题是Java。。。 (第63/64页) 我重新编写了代码,但它不起作用。有人能解释一下那是什么吗 我在Eclipse中遇到的错误是: Exception in thread "main" java.lang.Error: Unresolved compilation problems: The public type GuessGame must be defined in its own file The public type Player m
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The public type GuessGame must be defined in its own file
The public type Player must be defined in its own file
at GuessGame.<init>(GameLauncher.java:1)
at GameLauncher.main(GameLauncher.java:73)
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 BrojKojiTrebaPogodit = (int)(Math.random() * 10);
System.out.println ("Razmisljam o broju izmedju 0 i 9 ... ");
while (true){
System.out.println ("Zamisljeni broj je " + BrojKojiTrebaPogodit);
p1.guess();
p2.guess();
p3.guess();
guessp1 = p1.number;
System.out.println ("Player P1 guessed " + guessp1);
guessp2 = p2.number;
System.out.println ("Player P2 guessed " + guessp2);
guessp3 = p3.number;
System.out.println ("Player P3 guessed " + guessp3);
if (guessp1 == BrojKojiTrebaPogodit){
p1isright = true;
}
if (guessp2 == BrojKojiTrebaPogodit){
p2isright = true;
}
if (guessp3 == BrojKojiTrebaPogodit){
p3isright = true;
}
if (p1isright || p2isright || p3isright) {
System.out.println ("We have winner!");
System.out.println ("Is P1 got it right? " + p1isright);
System.out.println ("Is P2 got it right? " + p2isright);
System.out.println ("Is P3 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 = 0;
public void guess() {
number = (int) (Math.random()*10);
System.out.println("I'm guessing " + number);
}
}
public class GameLauncher {
public static void main (String[] imeStringa){
GuessGame game = new GuessGame();
game.startGame();
}
}
THX在一个.java文件中只能声明一个公共类每个java文件只能有一个公共类错误消息告诉您错误:代码未编译(您应该在Eclipse的“Problems”视图中看到红色错误标记),因为Java中的每个公共类都应该在一个单独的文件中定义,该文件具有类的名称:
public class GuessGame --> must be in GuessGame.java
public class Player --> must be in Player.java
包树还必须与目录树相匹配,从源目录开始:
package com.foo.bar;
public class GuessGame --> must be in com/foo/bar/GuessGame.java
注意:Eclipse允许您启动应用程序,即使它没有编译,但您不应该这样做:它不会工作。您需要将Player和GameLauncher类放在它们自己的类文件中,或者将括号}移动到GameLauncher类下面的Player类之前,使它们成为内部类。另外,game launcher类必须是静态的,并且有一个额外的括号}在Java中,game launcher类之后,一个文件中应该只有一个公共类。如果你想拥有多个公共类,那么就选择内部类 为什么一个文件不能有多个公共类。当我开始使用java时,同样的问题也萦绕在我的脑海中。无论我问谁,我都得到了相同的答案——“这就是它的工作方式” 问候,,
John正如上面提到的许多人一样,你不能有多个公共类…所以只需将其设置为除猜谜游戏外的非公共类。除此之外,我只取了最后一个类,在猜谜游戏中设置了主类,因为它是公共类,将startName设置为静态,并将Player类设置为静态。然后我叫StartName();基本上
public class GuessGame {
static Player p1;
static Player p2;
static Player p3;
public static void main(String[] args) {
startGame();
}
public static 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 BrojKojiTrebaPogodit = (int)(Math.random() * 10);
System.out.println ("Razmisljam o broju izmedju 0 i 9 ... ");
while (true){
System.out.println ("Zamisljeni broj je " + BrojKojiTrebaPogodit);
p1.guess();
p2.guess();
p3.guess();
guessp1 = p1.number;
System.out.println ("Player P1 guessed " + guessp1);
guessp2 = p2.number;
System.out.println ("Player P2 guessed " + guessp2);
guessp3 = p3.number;
System.out.println ("Player P3 guessed " + guessp3);
if (guessp1 == BrojKojiTrebaPogodit){
p1isright = true;
}
if (guessp2 == BrojKojiTrebaPogodit){
p2isright = true;
}
if (guessp3 == BrojKojiTrebaPogodit){
p3isright = true;
}
if (p1isright || p2isright || p3isright) {
System.out.println ("We have winner!");
System.out.println ("Is P1 got it right? " + p1isright);
System.out.println ("Is P2 got it right? " + p2isright);
System.out.println ("Is P3 got it right? " + p3isright);
System.out.println ("Game is over");
break;
}
else {
System.out.println ("Players will have to try again!");
}
}
}
}
class Player {
int number = 0;
public void guess() {
number = (int) (Math.random()*10);
System.out.println("I'm guessing " + number);
}
}
每个.java文件一个公共类
查阅您在第7页上的头先Java一书以供参考。(跳进快速下潜)这里的大多数人讲英语,而不是南斯拉夫语变体,所以最好翻译源代码中的变量:)谢谢大家:)会试试你说的话……非常感谢,现在它正在工作。。。我是诺布:(如果它们不是公共的,我可以多要1个吗?是的,你可以。看: