如何从同一个 class 调用方法?
How do you invoke a method from the same class?
我正在为 class 制作一个骰子游戏,但我不知道如何调用掷骰子方法。
public class PigGame{
public GVdie die1;
public GVdie die2;
public int PlayerScore;
public int ComputerScore;
public int RoundScore;
public int winningScore;
public int Roll1;
public PigGame(){
die1 = new GVdie();
die2 = new GVdie();
PlayerScore = (0);
ComputerScore = (0);
RoundScore = (0);
winningScore = (100);
System.out.println("Welcome to the game of Pig");
}
public int getRoundScore (){
return RoundScore;
}
public int getPlayerScore (){
return PlayerScore;
}
public int getComputerScore(){
return ComputerScore;
}
public boolean playerWon(){
if (PlayerScore >= 100)
return true;
else
return false;
}
public boolean computerWon(){
if (ComputerScore >= 100)
return true;
else
return false;
}
private void rollDice (){
die1.roll();
die2.roll();
int roll1 = die1.getValue();
int roll2 = die2.getValue();
if ((roll1 == 1) || (roll2 == 1))
RoundScore = 0;
else
RoundScore = roll1 + roll2;
System.out.println(die1 + "+" + die2 + "=" + (RoundScore));
}
public void playerRolls(){
Roll1.rollDice();
System.out.print(PlayerScore);
if(PlayerScore >= 100)
System.out.println("You have won the game of Pig!");
}
在我的 public void playerRolls() 内部,我需要调用 rollDice 方法,我一直很难弄清楚如何执行此操作。我所做的一切都出现了一个新错误。该行中的第一行代码显然是错误的,这只是我放在那里的最后一件事。
您可以在playerRolls()
中直接调用rollDice()。只是 rollDice();
。你现在正在做的是尝试从一个奇怪的 int 调用方法。 私有方法可以在内部调用,并且只能在其自身的 class 实例.
内部调用
public void playerRolls(){
rollDice(); //HERE
System.out.print(PlayerScore);
if(PlayerScore >= 100)
System.out.println("You have won the game of Pig!");
}
你试图通过 Roll1.rollDice()
做的是调用 class int 的方法 rollDice()
(我强烈认为它不存在)。
您可以简单地从同一个 class.
中调用 this.rollDice()
甚至 rollDice()
this
是指向您当时所在的对象的指针。
我正在为 class 制作一个骰子游戏,但我不知道如何调用掷骰子方法。
public class PigGame{
public GVdie die1;
public GVdie die2;
public int PlayerScore;
public int ComputerScore;
public int RoundScore;
public int winningScore;
public int Roll1;
public PigGame(){
die1 = new GVdie();
die2 = new GVdie();
PlayerScore = (0);
ComputerScore = (0);
RoundScore = (0);
winningScore = (100);
System.out.println("Welcome to the game of Pig");
}
public int getRoundScore (){
return RoundScore;
}
public int getPlayerScore (){
return PlayerScore;
}
public int getComputerScore(){
return ComputerScore;
}
public boolean playerWon(){
if (PlayerScore >= 100)
return true;
else
return false;
}
public boolean computerWon(){
if (ComputerScore >= 100)
return true;
else
return false;
}
private void rollDice (){
die1.roll();
die2.roll();
int roll1 = die1.getValue();
int roll2 = die2.getValue();
if ((roll1 == 1) || (roll2 == 1))
RoundScore = 0;
else
RoundScore = roll1 + roll2;
System.out.println(die1 + "+" + die2 + "=" + (RoundScore));
}
public void playerRolls(){
Roll1.rollDice();
System.out.print(PlayerScore);
if(PlayerScore >= 100)
System.out.println("You have won the game of Pig!");
}
在我的 public void playerRolls() 内部,我需要调用 rollDice 方法,我一直很难弄清楚如何执行此操作。我所做的一切都出现了一个新错误。该行中的第一行代码显然是错误的,这只是我放在那里的最后一件事。
您可以在playerRolls()
中直接调用rollDice()。只是 rollDice();
。你现在正在做的是尝试从一个奇怪的 int 调用方法。 私有方法可以在内部调用,并且只能在其自身的 class 实例.
public void playerRolls(){
rollDice(); //HERE
System.out.print(PlayerScore);
if(PlayerScore >= 100)
System.out.println("You have won the game of Pig!");
}
你试图通过 Roll1.rollDice()
做的是调用 class int 的方法 rollDice()
(我强烈认为它不存在)。
您可以简单地从同一个 class.
中调用this.rollDice()
甚至 rollDice()
this
是指向您当时所在的对象的指针。