程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> 淺談C#基礎之類的訪問修飾符

淺談C#基礎之類的訪問修飾符

編輯:C#基礎知識

1.類中成員的訪問修飾符

方位修飾符就是確定該成員能夠訪問(使用)的區域。C#中常用的有如下修飾符:pubic(公有)、private(私有)、internal(內聯)、protected(受保護)。舉例說明各個修飾符的限制區域。   
代碼如下:

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繼承類可以使用。
代碼如下:

    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呢?
代碼如下:

    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。如下面所示,類內訪問類內無限制。
代碼如下:

    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。
代碼如下:

    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表明大家都在中國。
代碼如下:

    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:類內即其派生類。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved