我对Java有一些疑问。代码中有两个问题(我将其留为注释)。
另外,使用设置和获取方法的目的是什么?您能否简要解释一下。我是初学者。谢谢 :)

public class Die
{
   private final int MAX = 6;
   private int faceValue;

   public Die()
   {
      faceValue = 1;

      //why do you set the faceValue as 1?
   }

   public int roll()
   {
      faceValue = (int)(Math.random() * MAX) + 1;
      //Why do we use MAX instead of just number 6?

      return faceValue;
   }

   public void setFaceValue (int value)
   {
      if (value > 0 && value <= MAX)
         faceValue = value;
   }

   public int getFaceValue()
   {
      return faceValue;
   }

   public String toString()
   {
      String result = Integer.toString(faceValue);
      return result;
   }
}

最佳答案

首先,您应该正确使用代码样本标签,这样阅读很难看。使用getter / setter方法将阻止直接访问实例变量。这也称为数据隐藏或封装。对于您的问题,faceValue的初始值为1,通常在构造函数中进行初始化。第二个问题Math.random将生成一个0-1之间的数字,将其乘以6,结果将生成一个介于0和5之间的数字。因此,您将+1加到1-6的范围内。

10-05 23:04