我在面试中被问到以下问题,我很想知道答案。
有以下两个类,
public class EmployeeA{
public int empId;
}
public class EmployeeB{
private int empId;
public void setEmpId(int empId){this.empId = empId;}
public int getEmpId(){return empId;}
}
有两个类,其中一个类具有公共(public)实例字段,其他类具有带有 getter 和 setter 的私有(private)字段。在这种情况下,哪个实现方案更好,为什么? [我了解到将实例变量设置为私有(private)是更好的主意。但在这两种情况下,我都可以修改 empId 属性的值。 ]
最佳答案
他们可能正在寻找的单词答案是“encapsulation ”。
通过封装私有(private)字段值,您有机会更改将来如何设置/检索该值的逻辑。举例来说,您想要在集合上进行验证并在检索(获取)时进行过滤。通过封装该值,您可以创建一个 API,以便更好地进行维护。
关于java - 如果类只有 getter 和 setter,为什么 Java 中的实例变量应该是私有(private)的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26727372/