Java 如果对象位于使用for循环的数组中,如何访问对象数据?
我创建《垄断》游戏《星球大战版》是为了好玩,不是为了做作业:)不管怎样,我都在提示用户输入总共4名玩家中他们想要多少“人类”玩家。然后我使用for循环来创建那个数量的人类玩家。但是,当我使用getter方法测试玩家是否在循环之外生存时,它说“找不到符号变量玩家”。这也是我第一次尝试使用数组。因此,如果有人能帮助我访问和使用这些创建的独特的玩家对象,那将是非常棒的Java 如果对象位于使用for循环的数组中,如何访问对象数据?,java,arrays,for-loop,Java,Arrays,For Loop,我创建《垄断》游戏《星球大战版》是为了好玩,不是为了做作业:)不管怎样,我都在提示用户输入总共4名玩家中他们想要多少“人类”玩家。然后我使用for循环来创建那个数量的人类玩家。但是,当我使用getter方法测试玩家是否在循环之外生存时,它说“找不到符号变量玩家”。这也是我第一次尝试使用数组。因此,如果有人能帮助我访问和使用这些创建的独特的玩家对象,那将是非常棒的 import java.util.Scanner; import java.util.Random; public class
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]不是你要找的玩家。往前走……嗯!我正在尝试访问数组的索引!哇,谢谢你的帮助,我永远也想不到。我们没有在课堂上讨论数组,所以这是全新的。成功了。嗯!我正在尝试访问数组的索引!哇,谢谢你的帮助