Jam*_*ran 11
限制对对象内部状态的访问.
考虑一类几何形状的经典例子.比方说,一个Circle对象.设置半径时,您可能希望自动计算区域(这将是一个只读属性)
class Circle
{
float radius;
public float Radius
{
get { return radius; }
set { radius = value; area = Math.Pi * radius * radius;}
}
float area;
float Area
{
get { return area;}
}
}
Run Code Online (Sandbox Code Playgroud)
如果您允许直接访问"radius"数据成员,则无法area在更改时进行更新.此外,如果您允许直接访问area,用户可以不顾一切地改变它radius.