Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从同一个类调用方法?_Java_Bluej - Fatal编程技术网

Java 如何从同一个类调用方法?

Java 如何从同一个类调用方法?,java,bluej,Java,Bluej,我正在为一个类制作一个骰子游戏,我不知道如何调用掷骰子方法 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

我正在为一个类制作一个骰子游戏,我不知道如何调用掷骰子方法

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!");

  }

在我的公共void playerRolls中,我需要调用rollDice方法,我一直很难弄清楚如何做到这一点。我所做的一切都出现了新的错误。该行中的第一行代码显然是错误的,这是我放在那里的最后一行代码。

您可以直接在playerRolls中调用rollDice。只需滚动骰子;。您现在所做的是尝试从一个奇怪的int调用该方法。私有方法只能在其自身的类实例内部调用


Roll1.rollDice试图做的是调用int类的方法rollDice,我强烈假设它不存在

您可以简单地调用this.rollDice,甚至可以从同一个类中调用rollDice


这是一个指向此时所在对象的指针。

非常感谢这一点。我知道这将是一个愚蠢的简单修复。我在这个项目上还有很多工作要做,希望我能完成它。
public void playerRolls(){
   rollDice(); //HERE

   System.out.print(PlayerScore);
   if(PlayerScore >= 100)
       System.out.println("You have won the game of Pig!");
}