试图创建相同对象类型的两个实例,但最终得到两个引用相同对象的变量。 JAVA

问题描述 投票:1回答:1

我一直在尝试用Java创建井字游戏,以帮助我从头开始创建面向对象的项目。但是我遇到了一个问题,正在寻找一些指导。

目前我只是完成项目的一半,所以我只给你快速更新一下我到目前为止所做的事情。

该项目目前具有Game类作为驱动程序。它具有一个Board类,用于存储板上位置(A1,A2,A3 ...)及其值(“ X”,“ O”,null)之间的映射。还有一个Player类,该类为运动员所在的团队(X或Os)和获胜次数(尚未实现获胜的功能)保留字段。

我遇到的问题是从Game创建两个Player类的实例(player1和player2)。

我已经将它们定义为Game中的字段,如下所示:

public static Player player1 = new Player();
public static Player player2 = new Player();

然后要求player1在X和O之间选择,而player2则相反。

player1.setTeam(Character.toUpperCase(teamChoice));

if(player1.getTeam() == 'X')
     player2.setTeam('O');
else
     player2.setTeam('X');

在我的脑海中,这应该起作用。但是,当我打印出播放器选项时,它会打印出已设置为player2的任何内容。

System.out.println("Player 1 you have selected " + player1.getTeam() + "\n");
System.out.println("Player 2 you will be " + player2.getTeam() + "\n");

Player类的内容如下:

public class Player {
    public static int wins = 0;
    public static Character team;

    public Player(){
    }

    public int getWins(){return wins;}

    public Character getTeam(){return team;}

    public void setTeam(Character team){
        Player.team = team;
    }

}

我一直在尝试用Java创建井字游戏,以帮助我从头开始创建面向对象的项目。但是我遇到了一个问题,正在寻找一些指导。我只是...

java object definition
1个回答
1
投票

问题在这里:

© www.soinside.com 2019 - 2024. All rights reserved.