C# 在什么情况下需要将方法定义为pirvate,不想别的类访问?安全性?那有什么情况下是不想别的类访问的呢

那有什么情况下是不想别的类访问的呢?安全性是针对开发者的吗?只是为了防止不小心调用错了方法?那这个安全性是不是没什么实际意义呢?难道private、procted、pub... 那有什么情况下是不想别的类访问的呢?安全性是针对开发者的吗?只是为了防止不小心调用错了方法?那这个安全性是不是没什么实际意义呢?
难道private、procted、public等修饰符只是为了满足面向对象的编程规范?知道定义为private是不想让人访问,但什么情况下会有这种需要呢?全部定义为Public不更好吗,内部、外部都可以访问。我就遇到过一种情况,我先也是想一些方法应该只有在本类中才会调用,但做到后来发现在子类中也要用到,结果又去把那些方法的修饰符改为procted,随之觉得我为什么不全都定义为public呢,这样有什么不好吗?
展开
 我来答
光子炮
2011-03-31 · TA获得超过591个赞
知道小有建树答主
回答量:287
采纳率:100%
帮助的人:358万
展开全部
定义private等的确是面向对象编程规范的需要(封装性)。有这种需要的情况很多:
1.安全性。例如数据库密码、账户密码等;
2.稳定性。尽量把变量定义为private,使其它调用者只需要了解更少的接口,避免出错;
3.方便性。你也不想vs的智能提示列出几十上百个变量、属性让你选择吧?
你说的最后一点是有缺陷的设计的问题,而并非private不好
追问
谢谢您的回答,稳定性和方便性都能理解,安全性的话你讲的比如数据库密码,我想定义为private也只是防止开发者在开发中不小心调用到吧?和于安全性是不是没什么关联呢,如果定义为public会有什么后果?
追答
是这样,你写的东西可能是作为类库(dll)发布给其他开发者调用,就好像微软的程序员写的.net类库由我们调用一样。如果定义为public,其他开发人员就可以获取到你的密码等信息。
钢哥love
2011-03-31
知道答主
回答量:4
采纳率:0%
帮助的人:3.2万
展开全部
private 是保护的意思,在private这个类中定义的变量叫局部变量,只能在这个类里使用,而在同一命名空间下别的类不能访问,防止变量名的重复……,避免很多错误,既是对开发者的安全性又有对使用者安全性的意思,凡事没有绝对的嘛,呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
5月20号的猫
2011-03-31 · TA获得超过117个赞
知道小有建树答主
回答量:321
采纳率:0%
帮助的人:268万
展开全部
定义为private的方法为私有方法 对象无法直接调用

但是可以在类中调用

就是这个方法不足以实现一个功能 只是完成部分功能 不需要设置为共有方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-03-31
展开全部
因为一个大项目需要一个团队的人共同做的!
假如你编了一个类和同项目另一个人编的类名一样,整合时就会出错了。
所以定义为保护的,只在内部可以使用,外部定义的同名的就是另外的一个类
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式