【发布时间】:2015-04-07 07:59:50
【问题描述】:
这里有点新。
无论如何,我对 Java 比较陌生,这些是来自 uni 的一些练习题,我有一个问题。 我怎样才能使 TOTAL_RESERVES 不能被外部修改。现在如果我说
Gold.TOTAL_RESERVES = 500;
这会改变它的价值。 我如何使它只有构造函数更改值。
我知道我可以将其设为私有,但我希望它在 API 中。
这是参考 API
http://www.eecs.yorku.ca/course_archive/2014-15/W/1030/sectionZ/hw/doc/Gold/index.html
public class Gold
{
static int TOTAL_RESERVES = 100;
private int weight;
public Gold (int weight)
{
TOTAL_RESERVES -= weight;
this.weight = weight;
}
public int getWeight()
{
return this.weight;
}
public static int remaining()
{
return TOTAL_RESERVES;
}
@Override
public String toString ()
{
return "Weight = " + this.weight;
}
}
谢谢!
【问题讨论】:
-
如果整个宇宙中有一个字段我会设为私有,那就是
Gold.TOTAL_RESERVES. -
是的,我也是这么想的,但是 API 会显示它(也必须做 Javadoc),所以它是公开的。 =/ 可以记录私有变量吗?这似乎是错误的。 xD
-
@Nesan 你为什么把它变成静态的?
-
使用
final并使其成为常量 -
@Nesan 在 API 中明确指定了声明:“public static final int TOTAL_RESERVES”,那么为什么要更改该声明?
标签: java constructor static private public