我有几个与immutable
类字段有关的问题。不可变类字段查询
假设我有一个类Student
:
public class Student {
private final int empId;
public int getEmpId() {
return empId;
}
public Student(int empId) {
this.empId=empId;
}
}
问题1:为什么它必须定义字段作为private
决赛?
问题2:为什么需要final
以及private
。当我们宣布该字段为final
时,它将不会在课程外部显示出来吗?
问题3:为什么我们不能做到public final
?
在此先感谢。
q1)不完全正确,因为公共final int无法修改 – Michael
嗨,感谢您的回复。对于第2点,它是输入错误,我的意思是私人。问题2:为什么最终需要私人。当我们将该字段声明为PRIVATE时,它将不会在课程外部显示出来吗? –
@KamalVerma'private'并不直接与类是否是不可变的。关于不可变的一点是:在构造并初始化对象之后,不应该可以更改状态(成员变量)。 – Jesper