如何从同一个 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 是指向您当时所在的对象的指针。