在 Java 中,如何操作从另一个 class 实例化的变量?

In Java, how can I manipulate a variable instantiated from another class?

我是 Java 的新手,正在制作一个简单的应用程序。它由两个 class 组成,ComputerPlayer。在 Player 中,我提示用户猜测一个五位数的字符串。在 Computer 中,我将 Player class 实例化为:

Player number = new Player();
number.getGuess();

接下来,我创建了一个循环来检查计算机和玩家的号码是否匹配。为此,我需要将玩家号码的五位数字转换为整数。为什么 Java 不让我做:

int playerdigit = Integer.parseInt(number.substring(i,i+1));

它一直给我错误,方法 .substring 未定义。 我怎样才能做到这一点?任何帮助表示赞赏!

推测您的 Player class 没有名为 substring 的方法。也许你错过了像 number.getMyStringMember().substring(i,i+1)?

这样的电话

这是因为您正在尝试访问substringString class的方法)。在您向我们展示的代码中,您正在尝试访问 class Player 中的方法,并引用方法子字符串(class String 的方法,正如我所说的上面)并且你应该从你的 class Player 中引用一些 String。也许可以,假设你的 class Player 有玩家的名字和游戏中的号码(这是一个例子),就像这样:

public class Player
{
   int numPlayer;
   String name;
}

并使用您的方法 GETSET 用于此属性:

public void setNumPlayer(int numPlayer)
{
   this.numPlayer = numPlayer;
}

public int getNumPlayer()
{
  return numPlayer;
}

public void setName(String name)
{
   this.name = name;
}

public String getName()
{
   return name;
}

您应该参考 returns 您的 StringGET 方法,然后您将能够使用 Stringsubstring 方法 class。像这样:

int playerdigit = Integer.parseInt(number.getName().substring(i,i+1));

此外,我看到您正在尝试制作:

number.getGuess();

也许您正在尝试(我不知道)是用 getGuess 方法获得 String。那么你应该这样做:

String guess = number.getGuess();

存储您的 String 的值。

之后,您将能够制作子串:

int playerdigit = Integer.parseInt(guess.substring(i,i+1));

希望对您有所帮助!

'substring' 方法是字符串 class 的非静态方法(非静态意味着您使用 class 的实例而不是使用class 自己命名)。因此,您想以以下格式调用此方法: some_string.substring(start_index, end_index),请记住结尾索引不包含在内。在您的情况下,您试图在播放器对象上调用 substring 方法(因为您的 'number' 变量绑定到播放器对象,而 Player class 没有 substring 方法)。相反,您可能应该执行以下操作(这也具有更好的命名约定,因为 "number" 不引用玩家对象):

Player p = new Player();
String number = p.getGuess();

然后,在你的循环中,你可以这样做:

Integer.parseInt(number.substring(i,i+1));

并使用计算机生成的号码分别检查每个数字。

希望对您有所帮助!