在Java抽象类中初始化“Default”最终属性

时间:2018-05-08 06:54:33

标签: java oop attributes abstract-class final

我有一个抽象类,它应该有一个(int)属性,在初始化后无法修改并预先设置为1;最好的方法是什么? 我应该做最后的决定吗? 要求是在类中我将只有一个构造函数(带参数),没有setter。 如果是这样,如果它是最终的,我如何将其设为1并且(我想)我将在构造函数中初始化它? 谢谢!

2 个答案:

答案 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;
  }

}