- 类是package-private的,是要暴露给客户端的。x和y是public的,也是要暴露给客户端的。那么考虑到向后兼容,这两个变量将永久暴露给客户端。
- 并且,在访问这两个变量的前后,不能添加任何操作。getter就可以,比如提供一个缓存。
class Point{
public double x;
public double y;
}
数组是public的话,可能或被客户端改变。可以转换成unModifiableList。
private static final Integer[] integers =new Integer[]{1, 2, 4};
public static final List integetList
= Collections.unmodifiableList(Arrays.asList(integers));
我们应该尽量少暴露classes,interfaces和成员变量给客户。