封装 • 封装被定义为“把一个或多个项目封闭在一个无力的或者逻辑的包中”,在面向对象程序设计方法论中,封装是为了防止对实现细节的访问 • 抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象 • 一个访问修饰符定义了一个类成员的范围和可见性。C#中支持的访问修饰符如下所示 public:所有对象都可以访问 private:对象本身在对象内部可以访问 protected:只有该类对象及其子类可以访问 internal:同一程序集的对象可以访问 Protected internal:访问限与当前程序集或派生自包含类的类型 修饰符举例 例:一个人A为父类,他的儿子B,妻子C,私生子D(D不在他家) 对A的事情增加修饰符 public:完全公开,所有人都知道 protected:A,B,D知道(A和他的儿子B.D知道,妻子C不知道) private:只有A自己知道 internal:A,B,C知道(A中家里人知道,私生子D不知道) Protected internal:A,B,C,D知道,其他人不知道 注意 • 命名空间上不允许使用访问修饰符,命名空间没有访问限制 • 一个成员或类型只能有一个访问修饰符,(protected internal例外) • assembly中的class默认访问修饰符为internal • 类中的字段默认为private • 类中的方法默认为private,包括构造函数