您的位置:首页 > 其它

条款22:将成员变量声明为private

2012-09-10 15:27 92 查看
为什么不将成员变量声明为public呢?

1.如果变量都是private,那么用户只能通过函数来获得这个变量,而不用考虑“.”或者“->”后面的东西用不用加上“()”。

2.使用函数,可以对变量进行精确地控制:有的变量不许访问,有的只读,有的可以读写,甚至是可以“只写”。而且在函数中,可以处理用户输入的不合理的参数。

3.封装性。封装性意味着,当你有新的想法需要修改时,只需要改变函数内部的实现细节。只要函数的接口没有改变,那么所有使用这个函数的代码就不需要做改变。而假如你使用的数据,那么整个代码的修改量就会大很多。简而言之,public意味着不封装,所有public下的东西都是别人用的,你不能轻易修改它们。
而对于protected,前两点依然适用。而对于第三点,可以从另一个角度来说明:如果public变量被取消那么所有使用它的代码都会被取消。对于protected,则破坏的是他的派生类。这都是无法衡量的。而如果private变量被取消,我们只要修改本类中调用这个变量的函数就行了。

总而言之,变量应该声明为private。声明为protected不会比声明为public带来明显的改善
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: