我正在调整用 Java 编写的模拟。我有限的背景都是C++。
模拟的当前实现依赖于一个名为Parameters. 类的实例Simulation引用 的属性Parameters,我认为它从未被实例化。该类Parameters具有类似的结构
public class Parameters {
public static int day = 0;
public static final int endDay = 365;
....
public static int getDate() {
return day;
}
}
在 的一个实例中Simulation,有对例如 的引用Parameters.day。
目前, 的所有属性Parameters都是硬编码的。我需要能够使用命令行参数更改其中的一些。例如,我希望能够endDay使用Parameters::setEndDay(int customDay)某种函数来设置不同的值。
我的第一个想法是创建一个实例 ( Parameters parameters = new Parameters()) 并完全重写Parameters该类,使其所有属性都是私有的,并且只能通过访问器函数访问。我担心这种方法效率不高。到目前为止,我已经尝试了一种混合方法,在该方法中我创建了一个Parameters类的实例,然后我将它传递给一个实例,Simulation同时仍然偶尔引用Parameters.day(我不需要更改)。
问题之一是我对 Java 中的类权限没有很好的认识。
建议表示赞赏。