我正在调整用 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 中的类权限没有很好的认识。
建议表示赞赏。