C#类成员访问修饰符详解:public、private与protected的作用域
C#类中的访问修饰符定义了成员的可访问范围。public允许外部访问,private仅限类内部,protected对派生类可见。合理使用这些修饰符是封装数据的关键。
核心访问修饰符概览
C#提供多种访问修饰符来控制类成员的可见性。常用的修饰符包括:
public:公有。任何代码都可以访问。private:私有。仅限定义该成员的类内部访问。protected:受保护。仅限于该类内部及其直接派生类访问。internal:当前程序集内所有代码均可访问。
不同场景下的访问控制
第1步:在普通类中使用 public 与 private
目的:明确区分接口暴露与内部实现细节。
操作:创建一个测试类,分别定义公有和私有字段。
class TestClass
{
public int a = 0; // 外部可访问
private int b = 0; // 仅内部可访问
}
结果:实例化 TestClass 后,可以直接读取 a,但尝试读取 b 会导致编译错误。
第2步:验证 protected 的继承访问权限
目的:展示受保护成员在基类实例与派生类实例间的差异。
操作:创建派生类 C 继承自 TestClass。
class C : TestClass
{
private void st()
{
TestClass tec = new TestClass();
C bo = new C();
// 正确:基类的public成员可通过任何引用访问
int aa = tec.a;
// 错误:base instance无法访问protected成员
// int cc = tec.c;
// 正确:派生类实例可以访问其自身的protected成员
int tt = bo.c;
}
}
注意:protected 成员只能通过派生类的实例来访问其自身的该成员,而不能通过基类类型的变量访问。
第3步:了解 static 修饰符的特殊性
目的:理解静态成员属于类本身而非特定对象。
操作:在类中添加静态字段。
class TestClass
{
public static int d = 0; // 类级共享变量
private int e = 0; // 实例变量
}
规则:静态方法只能直接访问静态成员。若在初始化块或属性赋值中引用非静态字段,将引发异常。
完成判断
通过上述步骤,您可以观察到:
public成员在全局范围内可见。private成员严格局限于类体内部。protected成员在继承链中具有传递性,但必须作用于自身或派生类的实例上。
以上就是C#访问修饰符的详细内容,更多关于C#面向对象编程的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









