每当教程首次引入访问器时,它们总是从在类或对象中初始化的公共变量开始。然后有一种方法来打印该公共价值。然后他们将其设为私有,以表明它对外部用户是隐藏的。
例如:
int _dayOfWeek;
public int dayOfWeek
{
get
{
return _dayOfWeek;
}
set
{
if (value > 0 && value < 8) _dayOfWeek = value;
}
}
什么阻止黑客使用这些访问器来获取和更改您的值?
答案 0 :(得分:1)
封装对黑客无济于事。它有助于防止错误地使用您的代码。有关封装使用的更多信息,请参阅the wiki文章。
通过使用您的代码的程序员可以访问您的私人数据,很难确保他们正确使用它。如果您控制对数据的所有访问权限,那么您可以确保它确实按照您的意图使用它。
为您的私人数据提供访问者通常是代码气味,表明不正确的封装。它只比暴露您的数据稍好一点。您希望公开用户功能而不是原始数据。