我对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的范围内。