我有一个抽象类,它应该有一个(int)属性,在初始化后无法修改并预先设置为1;最好的方法是什么? 我应该做最后的决定吗? 要求是在类中我将只有一个构造函数(带参数),没有setter。 如果是这样,如果它是最终的,我如何将其设为1并且(我想)我将在构造函数中初始化它? 谢谢!
答案 0 :(得分:0)
您应该使用带参数的构造函数来设置初始值。然后,正如您所说,不要创建任何setter,并确保您的字段是私有的,这样任何人都无法访问它。
通过这种方式,你可以做你想要的事情,让字段初始化但在此之后永远不会改变。
答案 1 :(得分:0)
您可以使用构造函数重载来实现此目的。参见示例:
public abstract class TestClass{
private final int otherParam;
private final int fixedParam;
public TestClass(final int otherParam){
this.otherParam = otherParam;
this.fixedParam = 1;
}
public TestClass(final int otherParam, final int fixedParam){
this.otherParam = otherParam;
this.fixedParam = fixedParam;
}
}