Java 如果对象位于使用for循环的数组中,如何访问对象数据?

Java 如果对象位于使用for循环的数组中,如何访问对象数据?,java,arrays,for-loop,Java,Arrays,For Loop,我创建《垄断》游戏《星球大战版》是为了好玩,不是为了做作业:)不管怎样,我都在提示用户输入总共4名玩家中他们想要多少“人类”玩家。然后我使用for循环来创建那个数量的人类玩家。但是,当我使用getter方法测试玩家是否在循环之外生存时,它说“找不到符号变量玩家”。这也是我第一次尝试使用数组。因此,如果有人能帮助我访问和使用这些创建的独特的玩家对象,那将是非常棒的 import java.util.Scanner; import java.util.Random; public class

我创建《垄断》游戏《星球大战版》是为了好玩,不是为了做作业:)不管怎样,我都在提示用户输入总共4名玩家中他们想要多少“人类”玩家。然后我使用for循环来创建那个数量的人类玩家。但是,当我使用getter方法测试玩家是否在循环之外生存时,它说“找不到符号变量玩家”。这也是我第一次尝试使用数组。因此,如果有人能帮助我访问和使用这些创建的独特的玩家对象,那将是非常棒的

    import java.util.Scanner;
import java.util.Random;
public class Launcher
{
    PairOfDice myDice = new PairOfDice();
    private Planet myTest;
    private PlanetInfo myPlanetInfo;
    public static void main(String[] args)
    {

        Scanner scan = new Scanner(System.in);
        System.out.println("You are in the presence of the Naked Jeff's code. Please, be humbled.");
        System.out.println();
        System.out.println("There will be 4 players, how many do you wish to be human? 0><4");

        ////////////////////////////////////////////////////////// HOW TO CREATE MULTIPLE OBJECTS BASED ON LOOP
        int numbHuman = scan.nextInt();
        while (numbHuman < 1 || numbHuman > 4)
        {
            System.out.println("Invalid entry, try again.");
            numbHuman = scan.nextInt();
        }
        Player[] arr = new Player[numbHuman];
        String[] userName = new String[numbHuman];
        for(int i = 0; i < arr.length; i++)
        {
            System.out.println("Player " + (i + 1) + ", Please enter your first name:");
            userName[i] = scan.next();
            arr[i] = new Player(userName[i]);
        }
        System.out.println("player " + (4) + "'s name is" + [COLOR="#FF0000"]player[/COLOR][3].getName());
        /////////////////////////////////////////////////////////
    }
}


//and here's my Player class.

public class Player
{
    PairOfDice myDice = new PairOfDice();
    private int startingBal;
    private int currentBal;
    private String myName;
    private int rollOne;
    private int rollTwo;
    private int doublesCount;
    private boolean roll;

    public Player(String userName)
    {
        myName = userName;
        System.out.println("Player's name is: " + myName);
    }
    public String getName(){return myName;}
    public int playerGo()
    {
        myDice.rollDice();
        rollOne = myDice.getResult1();
        rollTwo = myDice.getResult2();
        while(rollOne == rollTwo && roll == true)
        {
            doublesCount++;
            roll = false;
            //WORKING ON THIS//
        }
        return 0;
    }
    public boolean getGoAgain(boolean roll)
    {
        return roll;
    }
    public int newBalance()
    {

        return 1;
    }
}
import java.util.Scanner;
导入java.util.Random;
公共类启动器
{
PairOfDice myDice=新的PairOfDice();
私人行星测试;
私人飞机信息myPlanetInfo;
公共静态void main(字符串[]args)
{
扫描仪扫描=新扫描仪(System.in);
System.out.println(“你在赤裸裸的Jeff代码面前,请谦卑一点。”);
System.out.println();

System.out.println(“将有4名玩家,您希望成为多少人?0>而不是调用
player[3]。getName()
您希望调用
arr[3]。getName()

“必须仔细阅读您的代码。是否使用arr。没有玩家”。)

编辑

顺便说一句,如果玩家少于4名,即使是
arr[3].getName()
也可能导致错误。请改用
arr[numbHuman-1].getName()
,并注意这不一定是第4名玩家

所以你的思路可能是:

System.out.println("player " + numbHuman + "'s name is " + arr[numbHuman-1].getName());

您需要调用
arr[3].getName()
而不是调用
player[3].getName()

“必须仔细阅读您的代码。是否使用arr。没有玩家”。)

编辑

顺便说一句,如果玩家少于4名,即使是
arr[3].getName()
也可能导致错误。请改用
arr[numbHuman-1].getName()
,并注意这不一定是第4名玩家

所以你的思路可能是:

System.out.println("player " + numbHuman + "'s name is " + arr[numbHuman-1].getName());

您需要调用
arr[3].getName()
而不是调用
player[3].getName()

“必须仔细阅读您的代码。是否使用arr。没有玩家”。)

编辑

顺便说一句,如果玩家少于4名,即使是
arr[3].getName()
也可能导致错误。请改用
arr[numbHuman-1].getName()
,并注意这不一定是第4名玩家

所以你的思路可能是:

System.out.println("player " + numbHuman + "'s name is " + arr[numbHuman-1].getName());

您需要调用
arr[3].getName()
而不是调用
player[3].getName()

“必须仔细阅读您的代码。是否使用arr。没有玩家”。)

编辑

顺便说一句,如果玩家少于4名,即使是
arr[3].getName()
也可能导致错误。请改用
arr[numbHuman-1].getName()
,并注意这不一定是第4名玩家

所以你的思路可能是:

System.out.println("player " + numbHuman + "'s name is " + arr[numbHuman-1].getName());
替换

System.out.println("player " + (4) + "'s name is" + [COLOR="#FF0000"]player[/COLOR][3].getName()); 

您已声明类型为Player的数组,该数组的名称为arr。因此,在访问该数组时,您需要使用索引提供数组的名称,因此,如果您正在访问第三个Player,且索引以1开头,则代码将为:

 arr[3].getName();
替换

System.out.println("player " + (4) + "'s name is" + [COLOR="#FF0000"]player[/COLOR][3].getName()); 

您已声明类型为Player的数组,该数组的名称为arr。因此,在访问该数组时,您需要使用索引提供数组的名称,因此,如果您正在访问第三个Player,且索引以1开头,则代码将为:

 arr[3].getName();
替换

System.out.println("player " + (4) + "'s name is" + [COLOR="#FF0000"]player[/COLOR][3].getName()); 

您已声明类型为Player的数组,该数组的名称为arr。因此,在访问该数组时,您需要使用索引提供数组的名称,因此,如果您正在访问第三个Player,且索引以1开头,则代码将为:

 arr[3].getName();
替换

System.out.println("player " + (4) + "'s name is" + [COLOR="#FF0000"]player[/COLOR][3].getName()); 

您已声明类型为Player的数组,该数组的名称为arr。因此,在访问该数组时,您需要使用索引提供数组的名称,因此,如果您正在访问第三个Player,且索引以1开头,则代码将为:

 arr[3].getName();

[COLOR=“#FF0000”]player[/COLOR][3].getName()
这可能是格式不正确的,或者您的实际代码中有这种格式吗?能否显示引发的异常?错误具体在哪里?您已经提供了很多代码-能否将其简化为一个简短但完整的示例,只显示问题?player[3]不是您要找的播放器。请继续….
[COLOR=“#FF0000”]player[/COLOR][3]。getName()
这可能是格式不正确,或者您的实际代码中有这样的内容吗?您可以显示引发的异常吗?错误具体在哪里?您已经提供了很多代码-您可以将其简化为一个简短但完整的示例,只显示问题吗?player[3]不是您正在寻找的播放器。继续….
[COLOR=“#FF0000”]player[/COLOR][3].getName()
这可能是格式不正确的,或者您的实际代码中有这种格式吗?您能显示引发的异常吗?错误具体在哪里?您已经提供了很多代码-您能将其简化为一个简短但完整的示例,只显示问题吗?player[3]不是您要找的播放器。请继续….
[COLOR=“#FF0000”]player[/COLOR][3]。getName()
这可能是格式错误,或者您的实际代码中有这种情况吗?能否显示引发的异常?错误具体在哪里?您已经提供了很多代码-能否将其简化为一个简短但完整的示例,只显示问题?player[3]不是你要找的玩家。往前走……嗯!我正在尝试访问数组的索引!哇,谢谢你的帮助,我永远也想不到。我们没有在课堂上讨论数组,所以这是全新的。成功了。嗯!我正在尝试访问数组的索引!哇,谢谢你的帮助