麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

.NET中的靜態(tài)與非靜態(tài)的區(qū)別分析

2020-01-24 03:30:44
字體:
來源:轉載
供稿:網友

靜態(tài)類 vs 普通類

靜態(tài)類與普通類的區(qū)別有以下幾點:

1)靜態(tài)類無法實例化而普通類可以;

2)靜態(tài)類只能從System.Object基類繼承;普通可以繼承其它任何非static和非sealed類,但也只能繼承一個類;

3)靜態(tài)類不能繼承接口;普通類可以繼承多個接口;

4)靜態(tài)類只能包含靜態(tài)成員;普通類可以包含靜態(tài)和非靜態(tài)成員;

5)靜態(tài)類不能作為字段,方法參數(shù)和局部變量使用;普通類可以;

靜態(tài)類的意義:

可以用靜態(tài)類封裝一組不與任何對象相關聯(lián)的方法,如Math類,Console類。

 

靜態(tài)構造函數(shù) vs 實例構造函數(shù)

靜態(tài)構造函數(shù)與實例構造函數(shù)的區(qū)別有以下幾點:

1)靜態(tài)構造函數(shù)屬于類,在第一次用到該類時執(zhí)行且只執(zhí)行一次;實例構造函數(shù)屬于對象,在每次初始化一個新對象的時候都會執(zhí)行;

2)靜態(tài)構造函數(shù)只能定義一次,且不能包含參數(shù);實例構造函數(shù)可以定義重載,且可以包含參數(shù);

3)靜態(tài)構造函數(shù)只能訪問類型的靜態(tài)字段;實例構造函數(shù)可以訪問類型的靜態(tài)和非靜態(tài)字段;

4)靜態(tài)類不能包含訪問修飾符,默認為private.

靜態(tài)構造函數(shù)的意義:

設置類型的初始化,例如初始化類型需要的實例對象,為類型的靜態(tài)字段賦值等。

 

靜態(tài)方法 vs 實例方法

靜態(tài)方法與實例方法的區(qū)別有以下幾點:

1)靜態(tài)方法屬于類,通過類來調用;實例方法屬于對象,通過對象來調用;

2)靜態(tài)方法不能訪問類的非靜態(tài)成員;

靜態(tài)方法的意義:

完成一個與特定對象無關的功能。

 

靜態(tài)字段 vs 非靜態(tài)字段

靜態(tài)字段與非靜態(tài)字段的區(qū)別:

靜態(tài)字段屬于類,通過類來調用;非靜態(tài)字段屬于對象,通過對象來調用。

靜態(tài)字段的意義:

可以用靜態(tài)字段來記錄一些屬于類本身的信息。

 

代碼演示


復制代碼 代碼如下:

public class Test
     {
         public int i = 10;
         public static int j = 20;
         public int k;

         public Test()
         {
             Console.WriteLine("i is a non-static field, its value is {0}", i);
             Console.WriteLine("j is a static field, its value is {0}", j);
         }

         public Test(int k)
         {
             this.k = k;
             Console.WriteLine("i is a non-static field, its value is {0}", i);
             Console.WriteLine("j is a static field, its value is {0}", j);
             Console.WriteLine("k is a non-static field, its value is {0}", k);
         }

         static Test()
         {
             Console.WriteLine("I am a static constructor, I couldn't contain any parameters!");
             Console.WriteLine("I couldn't access to the non-static field i, I can only access to the static field j, the value of j is {0}", j);
         }

         public void Print()
         {
             Console.WriteLine("I am a instance method, I can access both the non-static field and the static field!");
             Console.WriteLine("The value of i is {0} and the value of j is {1}", i, j);
         }

         public static void StaticPrint()
         {
             Console.WriteLine("I am a static method, I couldnt access to the non-static field i,  I can only access to the static field j, the value of j is {0}", j);
         }
     }

運行結果


從運行結果可以看出,在Main方法中創(chuàng)建了兩個Test對象,靜態(tài)構造函數(shù)只執(zhí)行了一次,且先于實例構造函數(shù)執(zhí)行,實例構造函數(shù)在兩次實例化過程中各執(zhí)行了一次。同時可以看到我們是通過Test.j來調用的j字段,而i字段和k字段的調用則通過Test的兩個對象t1和t2調用。同樣的,靜態(tài)方法StaticPrint也是用Test類來調用,而實例方法Print通過Test類的對象來調用。

Fighting like Allen Iverson! Never never give up!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 一区国产在线 | 91精品动漫在线观看 | 草妞视频 | 福利免费视频 | 国产一区二区三区四区波多野结衣 | 九九热免费观看 | 91精品国产日韩91久久久久久360 | 国产91九色视频 | 免费国产自久久久久三四区久久 | av免费在线网站 | 精品久久久久久久久久久久久久久久久久久 | 日韩精品中文字幕一区 | 午夜视频观看 | 国产在线中文 | 日日操夜夜透 | 日韩视频在线免费 | 91短视频版高清在线观看免费 | 国产成人高清成人av片在线看 | 中文在线观看www | 日本成人一区二区 | 久久久久久久久日本理论电影 | 污污短视频 | 丰满年轻岳中文字幕一区二区 | av电影免费在线 | 日日草夜夜 | 午夜爽爽爽男女免费观看hd | 色诱亚洲精品久久久久久 | 视频二区国产 | 99国内精品视频 | 成人午夜在线免费 | 国产一国产一级毛片视频在线 | 日韩a毛片免费观看 | 久久国产精品二国产精品中国洋人 | 亚州精品天堂中文字幕 | 欧美一级黄色网 | 日本高清在线播放 | 成人在线视频播放 | 视频www| 狠狠干91 | 精品一区二区三区中文字幕老牛 | 亚洲网站一区 |