A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杜小鹏 初级黑马   /  2012-9-18 00:59  /  1246 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public,protected,private和internal有什么区别啊??求解!!!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

4 个回复

倒序浏览
private:只能在本类中使用
protected:在本类中及其子类中可以使用
internal:同一命名空间(程序集)中的类可以使用
public:所有类均可使用
从上到下,私有权限程度逐渐降低……

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
1.private :   私有成员, 在类的内部才可以访问。
2.protected : 保护成员,该类内部和继承类中可以访问。
3.public :    公共成员,完全公开,没有访问限制。
4.internal:   在同一命名空间内可以访问。
回复 使用道具 举报
Public,选择它的方法是在成员声明中包括 public 修饰符。public 的直观含义是“访问不受限制”。
Protected,选择它的方法是在成员声明中包括 protected 修饰符。protected 的直观含义是“访问范围限定于它所属的类或从该类派生的类型”。
Internal,选择它的方法是在成员声明中包括 internal 修饰符。internal 的直观含义是“访问范围限定于此程序”。
Protected internal(意为受保护或内部的),选择它的方法是在成员声明中包括 protected 和 internal 修饰符。protected internal 的直观含义是“访问范围限定于此程序或那些由它所属的类派生的类型”。
Private,选择它的方法是在成员声明中包括 private 修饰符。private 的直观含义是“访问范围限定于它所属的类型”。
声明一个成员时所能选择的已声明可访问性的类型,依赖于该成员声明出现处的上下文。此外,当成员声明不包含任何访问修饰符时,声明发生处的上下文会为该成员选择一个默认的已声明可访问性。

命名空间隐式地具有 public 已声明可访问性。在命名空间声明中不允许使用访问修饰符。
编译单元或命名空间中声明的类型可以具有 public 或 internal 已声明可访问性,默认的已声明可访问性为 internal。
类成员可具有五种已声明可访问性中的任何一种,默认为 private 已声明可访问性。(请注意,声明为类成员的类型可具有五种已声明可访问性中的任何一种,而声明为命名空间成员的类型只能具有 public 或 internal 已声明可访问性。)
结构成员可以具有 public、internal 或 private 已声明可访问性并默认为 private 已声明可访问性,这是因为结构是隐式地密封的。结构的成员若是在此结构中声明的(也就是说,不是由该结构从它的基类中继承的)不能具有 protected 或 protected internal 已声明可访问性。(请注意,声明为结构成员的类型可具有 public、internal 或 private 已声明可访问性,而声明为命名空间成员的类型只能具有 public 或 internal 已声明可访问性。)
接口成员隐式地具有 public 已声明可访问性。在接口成员声明中不允许使用访问修饰符。
枚举成员隐式地具有 public 已声明可访问性。在枚举成员声明中不允许使用访问修饰符。
public, internal, protected internal, private表明类实例方法的可访问性.

public, protected, protected internal, private表明继承时父类方法的可访问性.

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
private: 声明方法为私有, 中有在类的内可以只用。
protected:保护成员。
public: 声明方法为公共,可以再其他类中访问。
Internal:只能在一个命名空间下,和 public不同public声明方法之后,在以后只要声明类,就可调用public方法。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马