chapter 6: Objects & Data Structures
1-数据抽象
比较一下代码:
// 代码1
public class Point {
public double x;
public double y;
}
VS
// 可表示极坐标系 和 直角坐标系的点
// 它不止是一个数据结构,因为他定义了关于数据的访问
public interface Point {
double getX();
double getY();
void setCartesian(double x, double y);
double getR();
double getTheta();
void setPolar(double r, double theta);
}
隐藏实现不是仅仅用一层函数把变量隐藏起来(e.g. set/get),而是抽象!!!
在抽象接口中,我们不想将数据的详细暴露出来,而想以抽象的方式表达我们的数据。
如以下代码
// 代码2
public