我的任务是找出如何查看但不编辑另一个类中的私有 int。我尝试了一些过于复杂的事情,但有效的是:
public int getC() {
return myC;
}
myC 是一个私有整数。让另一个类访问私有变量真的那么容易吗?我以为它们不能共享。有人可以解释为什么这是允许的吗?
您创建了一个 public getter 函数来访问私有变量。因此,如果另一个类将您的类的实例作为其局部变量,它可以使用 public 函数(getter)来访问原始类的 private 变量。
暴露私有字段的唯一方法是通过 accessors 又名 getters。
但是你应该遵循 2 条规则:
避免通过 getter(IDE 快捷方式)直接公开所有私有字段的诱惑。仅在确实需要时添加它们。
如果您公开的类型不是不可变的,请注意不要通过返回防御副本来转义引用
private Date date;
public Date date() {
return date;
}
这段代码破坏了封装性,与这样做是一样的。
public Date date;
public Date date() {
return new Date(date.getTime());
}
Date
->
LocalDate
的不可变变体