在公有类中使用访问方法而非公有域

在公有类中使用访问方法而非公有域

不提供封装的类,如果不改变API,就无法改变它的数据表示法,也无法强加任何约束条件;

例如这种:

1
2
3
4
class Point {
public double x;
public double y;
}

如果类是包级私有的,或者是私有的嵌套类,直接暴露它的数据域并没有本质的错误

Java的平台类库中有几个类违反了“公有类不应该直接暴露数据域”的告诫,比如java.awt包中的Point和Dimension类。