在C ++,Java或C#等OO语言中,有public
,private
,protected
等访问修饰符。有些语言还有其他修饰符,如internal
。所有这些都指定了谁可以访问某个变量或方法。对于变量,此术语 access 表示读取和修改的能力。但访问变量的最常见方案是让其他人公开可见,但保留在类中修改的能力。这是通过使用getter setter等的许多策略实现的。
我的问题是,为什么我们没有最常见场景的访问修饰符,可以命名为visible
?然后用它标记的变量可以通过外部类或方法读取。但只能在课堂上进行修改。
答案 0 :(得分:0)
您的建议会鼓励实施细节如何在班级中公布州的状态。
使用一个间接级别 - 属性 - 允许您将类型的公共API与其实现分开。这可能会带来很大的好处:
我所有的语言都使得更容易公开只读状态(例如,C#6正在使用只读自动实现的属性),但我不鼓励字段本身成为更明显。