
条款22:将成员变量声明为private
发布日期:2021-05-07 03:15:37
浏览次数:25
分类:精选文章
本文共 596 字,大约阅读时间需要 1 分钟。
为什么要将成员变量声明为private?
角度一:语法一致性
将所有成员变量都声明private,剩下的成员就是成员函数了。那么外部访问时都得要带括号,因为只可以访问成员函数。
角度二:使用函数可以让你对成员变量的处理有更精确的控制(访问控制角度)。
如果令成员变量为public,每个人都可以读写它,但是如果你以函数取得或设定其值,你就可以实现出“不可访问”、“只读访问”、“读写访问”。
角度三:封装性
-
将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”
提供弹性
。这使得成员变量被读、被写时,可以轻松的通知其他对象、可以验证class的约束条件以及函数的前提和事后状态、可以在多线程中执行同步控制…等等。 -
可以确保calss的约束条件得以维护
-
保留日后变更实现的权利(public意味着不封装,不封装几乎意味着不能变更实现,因为它会破坏大量的客户代码。尤其是对被大量使用的classes 而言更是如此。需要重新写客户代码,重新测试、重新编写文档、从新编译)
protected 和public其实是一样的,无论从一致性、访问控制、封装性三点,和public是一样的。protected虽然提供了一点封装性,但是不能够有上述保证,因此封装性和public也没啥区别。实际上,封装性只有两种,private (提供封装),和其它(public或者protected等,不提供封装).
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年03月27日 01时06分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
12张图打开JMeter体系结构全局视角
2019-03-06
学习版pytest内核测试平台开发万字长文入门篇
2019-03-06
Spring Cloud Stream如何消费自己生产的消息?
2019-03-06
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现
2019-03-06
Spring Boot 2.x基础教程:构建RESTful API与单元测试
2019-03-06
[UWP]浅谈按钮设计
2019-03-06
[UWP]分享一个基于HSV色轮的调色板应用
2019-03-06
[书籍]通过《番茄工作法图解》复习番茄工作法
2019-03-06
[UWP 自定义控件]了解模板化控件(1):基础知识
2019-03-06
UWP 自定义控件:了解模板化控件 系列文章
2019-03-06
[UWP]从头开始创建并发布一个番茄钟
2019-03-06
在 Azure 上执行一些简单的 python 工作
2019-03-06
WinUI 3 Preview 3 发布了,再一次试试它的性能
2019-03-06
前端页面,90°翻转图片、滚动鼠标滑轮放大缩小图片
2019-03-06
前端页面,90°翻转图片、滚动鼠标滑轮放大缩小图片
2019-03-06
快速解决PL/SQL Developer过期问题(无需注册码等复杂操作)
2019-03-06
使用命令把SpringBoot项目打包成可运行的jar包(简洁,操作性强)
2019-03-06