我正在创建一个银行模型,而Account类有一个accountNumber字段.帐号永远不会改变,但我不能将字段设置为final,因为这会阻止构造函数设置它.
如果不可能这样做,那没关系.这只是一个CS任务,所以我想确保我以最好的方式做到这一点.
最好的实现是将字段及其setter方法设为私有吗?
mik*_*kej 25
构造函数可以设置它,如果它被标记为final例如以下是合法的:
public class BankAccount {
private final int accountNumber;
public BankAccount(int accountNumber) {
this.accountNumber = accountNumber;
}
}
Run Code Online (Sandbox Code Playgroud)
实际上,如果某个字段final在其声明中被标记为但未初始化,那么它必须在所有构造函数中设置.
如果你没有在类上放置一个公共setter,那么不能从类外部更改帐号,但将其标记为final也会阻止它(意外地)被类中的任何方法更改.