源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

浅谈C#基础之类的访问修饰符

  • 时间:2022-12-04 18:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:浅谈C#基础之类的访问修饰符
1.类中成员的访问修饰符 方位修饰符就是确定该成员能够访问(使用)的区域。C#中常用的有如下修饰符:pubic(公有)、private(私有)、internal(内联)、protected(受保护)。举例说明各个修饰符的限制区域。   
[u]复制代码[/u] 代码如下:
class TestClass     {         public int a = 0;         private int b = 0;         protected int c = 0; pulic  static  int d=0;     }    
TestClass类中变量a是公有类型,可以在类外方位,即类实例化后可以使用a;变量b只能在类内访问,即类内部的函数可以使用b;变量c则是TestClass继承类可以使用。
[u]复制代码[/u] 代码如下:
    class B     {         private void st()         {            TestClass tec = new TestClass();             int aa = tec.a;   //right             int bb = tec.b;  //wrong             int cc = tec.c    //wrong         }
   TestClass 实例化对象tec,tec可以访问a但不能访问b、c。那么什么情况下可以访问b、c呢?
[u]复制代码[/u] 代码如下:
    class C:TestClass     {         private void st()         {            TestClass tec = new TestClass();             C bo = new C();             int aa = tec.a;             int bb = tec.b;//wrong             int cc = tec.c;//wrong             int tt = bo.c;         }     }
先说c。c是受保护类型,其继承类C可以访问。是类B实例化对象仍然不可以访问。但是B内部可以访问c。如下面所示,类内访问类内无限制。
[u]复制代码[/u] 代码如下:
    class TestClass     {         public int a = 0;         private int b = 0;         protected int c = 0; pulic  static  int d=0;         private void os()         {             int a1 = a;             int a2 = b;             int a3 = c;         }     }
B继承之后,c就变为private。也就说B的继承类无法访问c;如下所示,D中无法访问c。
[u]复制代码[/u] 代码如下:
    class D : B     {         private void st()         {             B bo = new B();             int dd = bo.c;//wrong访问受限制         }     }
static修饰符表明该字段或方法是类所有,不是某个具体对象的。TestClass类不同实例化时a、b、c的值不同,但d是相同的。如果说a、b、c相当于每个人在哪个省,那么d表明大家都在中国。
[u]复制代码[/u] 代码如下:
    class B:TestClass     {         TestClass tec = new TestClass();         int bb = tec.a;//wrong 错误原因是因为字段的初始值引用了非静态字段         int cc = TestClass.d;         private void st()         {             B bo = new B();             int aa = tec.a;             int tt = bo.c;         }     }
小结: puclic修饰:类内,类外皆可;private:内部;protect:类内即其派生类。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部