[Basic]面向对象之信息隐藏(二)

本文讨论了面向对象编程中的信息隐藏和访问控制,主要以C++和Java为例。C++通过public、protected、private关键字实现访问控制,强调了数据封装和隐藏的重要性,同时指出class和struct在C++中的区别。文章提醒开发者在使用C++时考虑与C的兼容性,尤其是在传递复杂数据给C函数时,应封装成struct并确保空间布局兼容。
摘要由CSDN通过智能技术生成

信息隐藏

在前一篇文章中,谈到了防止数据被直接访问与修改的处理方法。Hmm...让我们多聊聊访问控制与信息隐藏吧。让我们假设你现在编写了一个类库,没有采取任何措施,典型的传统C库。嗯,就是一些struct加上对struct的操作方法。团队的其它的一些程序员(client programmers)依赖着你这个类库而做其它的软件设计。突然有一天,你回过头再看你设计的这个类库,你发现里面的一个设计可以更棒,可以让算法更加高效。Wow...真是太美妙的事情了。然而,你想改变,client programmers却想要保持不变。因为他们不想改变他们的代码,因为你这一改变,可能伤筋动骨,涉及到他们使用的类库成员。Hoho...传统的C库就是这么的“赤裸与暴力”,对于client programmers而言,他们可以看见一切,你也没有任何办法阻止他们。而这种“赤裸与暴力”也不是你这个类库设计者想要看见的,你只想要他们知道如何使用类库即可,不必了解是如何实现的;你也只想要他们使用你提供的方法,而不是去对方法有什么改变,去触碰到他们不该触碰到的东西;更重要的是当你想要改变内部实现设计时,你发现你不能!这是一件多么痛苦的事情,你是这么迫切的想要设立访问控制以及信息隐藏!Ho...让我们看看C++和Java怎么做的吧。

C++提供的访问控制与信息隐藏支持

C++提供了三个关键字(Keywords)来支持访问控制:public,protected,private。关于这三个关键字的意义与使用,正如这三个关键字的本身含义一般。

public: 意味着公共的,everyone都能够访问。Hmm...作为类库设计者,你想要client programmers访问到的方法,我想你应该放到这。

private:与public相反,意味着除了你之外,别人都不可以访问。如果你想要你的数据成员隐藏,不被直接访问到&#x

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值