c#类以及类成员的访问修饰符
在面试中最容易考察到基础知识点非访问修饰符莫属,所以今天我来给大家分享一下c#中访问修饰符的知识点,此文章具有一定的参考价值,需要的朋友可以来参考鉴赏。如果说此文章写的不是太好,对大家造成了误导,或者说有一些不足指出,还请各位朋友能够指出,在下方评论,我期待大家一起的成长。
1、什么是访问修饰符?
(1)访问修饰符就是用来控制封装这个目标的权限范围
(2)权限范围:(这个目标)可以被哪些对象在什么地方可以访问到合格目标中的数据
那么我们就来认识一下类的访问修饰符有哪些,并且有哪些作用
2、类的访问修饰符以及组合访问修饰符有些那些
当我们在命名空间中定义元素的时候我们可用的只有public和internal来那种。
提示可知,在命名空间中直接声明只能用public和internal,且默认什么都不加的情况下是internal
我给大家总结出来:
修饰符 | 说明 |
---|---|
public | 表示公共的,访问完全不受限制 |
internal(默认的) | 表示内部的,仅本项目中可以访问,本程序表示同一个程序或同一个程序集中 |
abstract 或 internal abstract | 类只能在当前项目中访问,不能实例化,只能继承 |
public abstract | 类可以在任何地方访问,不能实例化,只能继承 |
sealed 或 internal sealed | 类只能在当前项目中访问,不能派生,只能实例化 |
public sealed | 类可以在任何地方访问,不能派生,只能实例化 |
3、成员的访问修饰符
修饰符 | 说明 |
---|---|
public | 表示公共的,访问完全不受限制 |
internal | 表示内部的,仅本项目中可以访问,本程序表示同一个程序或同一个程序集中 |
private(默认的) | 表示私有的,仅本类中可以使用,其他地方无法访问,包括它的子类也不能访问,并且类的实例都不可以访问 |
protected | 表示受保护的,仅本类和笨类的子类可以访问,可以跨程序集访问,并且类的实例都不能访问 |
protected internal | 表示受保护的内部(即受保护或内部),仅当前的项目中或者该类的子类可以访问到 |
4、各类型中的成员访问修饰符
枚举类型(enum) | 访问修饰符 |
---|---|
枚举类型(enum) | 枚举成员默认为public修饰符,且不能显示使用修饰符 |
结构(struct) | 机构成员默认为private修饰符。结构成员无法声明为protected成员,因为结构不支持继承 |
类(class) | 构造函数默认为public修饰符。析构函数不能显示使用访问修饰符且默认为private访问修饰符。类的成员默认访问修饰符为private。 |
接口(interface) | 接口成员访问修饰符默认为public,且不能显示使用访问修饰符 |
嵌套类型 | 嵌套类型的默认访问修饰符为private,和类、结构的成员默认访问类型一致 |
以上是本人查阅相关资料总结的,其中第4个各类型中的访问修饰符目前还没学到,是在查阅资料时意外收获的内容,希望对在学的各位朋友能够起到或大或小的帮助。如果本篇文章有什么纰漏或者不足之处,还请各位远方的朋友能够指出,我期待大家的进步!