在 Java 中,如何操作从另一个 class 实例化的变量?
In Java, how can I manipulate a variable instantiated from another class?
我是 Java 的新手,正在制作一个简单的应用程序。它由两个 class 组成,Computer
和 Player
。在 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)
?
这样的电话
这是因为您正在尝试访问substring
(String class的方法)。在您向我们展示的代码中,您正在尝试访问 class Player
中的方法,并引用方法子字符串(class String
的方法,正如我所说的上面)并且你应该从你的 class Player
中引用一些 String
。也许可以,假设你的 class Player
有玩家的名字和游戏中的号码(这是一个例子),就像这样:
public class Player
{
int numPlayer;
String name;
}
并使用您的方法 GET
和 SET
用于此属性:
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 您的 String
的 GET
方法,然后您将能够使用 String
的 substring
方法 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));
并使用计算机生成的号码分别检查每个数字。
希望对您有所帮助!
我是 Java 的新手,正在制作一个简单的应用程序。它由两个 class 组成,Computer
和 Player
。在 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)
?
这是因为您正在尝试访问substring
(String class的方法)。在您向我们展示的代码中,您正在尝试访问 class Player
中的方法,并引用方法子字符串(class String
的方法,正如我所说的上面)并且你应该从你的 class Player
中引用一些 String
。也许可以,假设你的 class Player
有玩家的名字和游戏中的号码(这是一个例子),就像这样:
public class Player
{
int numPlayer;
String name;
}
并使用您的方法 GET
和 SET
用于此属性:
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 您的 String
的 GET
方法,然后您将能够使用 String
的 substring
方法 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));
并使用计算机生成的号码分别检查每个数字。
希望对您有所帮助!