当我需要将类数据成员声明为public时,是否存在任何情况? 这种声明是否有任何错误?
答案 0 :(得分:1)
需要?否。
任何数据访问都可以通过getter和setter完成:
(上述陈述的真实性可能取决于语言)
private member
public getMember()
return member
public setMember(newValue)
member = newValue
而不是
public member
错误?不是。好吧,除了必须更改代码以使用getter和setter之外。
想要?可能。
使用getter和setter的主要缺点是你的代码看起来多么漂亮 - 它的可读性和代码膨胀。
有关使用getter和setter的优点,请参阅this。
如果使用getter和setter分类为类似于使成员公开,那么有很多场景需要您在其中一种访问方式。考虑一个拥有Car
类的人为例子。您希望获得windscreen
成员变量的原因有很多。