4 回答

TA贡献1864条经验 获得超2个赞
问题是您正在使用两个不同的对象。第一个在方法中创建,第二个在方法中创建。您仅为方法中的对象初始化播放器名称。它们永远不会在第二个对象中初始化。Gamemain()greetPlayer()main()
我假设您只想使用一个对象。一种解决方案是将对象传递给方法:GameGamegreetPlayer()
public static void main(String[] args) {
Welcome.greet();
Game start = new Game();
start.inputName();
Welcome.greetPlayer(start);
start.show();
}
public static void greetPlayer(Game call){
System.out.println("Welcome " + " " + call.x + " and " + call.y + "\n" + "Have Fun!");
}
另一种选择是将名称直接传递给方法:greetPlayer()
public static void main(String[] args) {
Welcome.greet();
Game start = new Game();
start.inputName();
Welcome.greetPlayer(start.x, start.y);
start.show();
}
public static void greetPlayer(String player1, String player2){
System.out.println("Welcome " + " " + player1 + " and " + player2 + "\n" + "Have Fun!");
}

TA贡献1824条经验 获得超8个赞
您正在两个地方创建 的对象。Game()
在 main() 中:
Game start = new Game();
在 :greetPlayer()
Game call = new Game();
您可以尝试合并两个类,这样您就可以在一个类中引入玩家,获取名称和游戏的其余部分:
import java.util.Scanner;
public class TicTac {
public static void main(String[] args) {
Game start = new Game();
Game.greet();
start.inputName();
start.show();
}
}
class Game {
public String x, y;
public void inputName() {
Scanner input = new Scanner(System.in);
System.out.println("Enter your name Player 1:");
String player1 = input.nextLine();
System.out.println("Enter your name Player 2:");
String player2 = input.nextLine();
x = player1;
y = player2;
}
public static void greet() {
System.out.println("\tTicTac Game By Abhi:");
System.out.println("\t __X_|__O_|__X_");
System.out.println("\t __O_|__X_|__O_");
System.out.println("\t X | O | X");
}
public void show() {
System.out.printf("Hi %s and %s", x, y);
}
}

TA贡献1796条经验 获得超4个赞
您需要将 Game 类的实例作为参数传递到对 greetPlayer 函数的调用中。试试下面这样:start
import java.util.*;
public class TicTac{
public static void main(String[] args) {
Welcome.greet();
Game start = new Game();
start.inputName();
Welcome.greetPlayer(start);
start.show();
}
)
class Welcome{
public static void greetPlayer(Game call){
System.out.println("Welcome " + " " + call.x + " and " + call.y + "\n" + "Have Fun!");
}
}
添加回答
举报