1.C#中的類-class

  • 類的默認(rèn)訪問標(biāo)識(shí)符是 internal,成員的默認(rèn)訪問標(biāo)識(shí)符是 private
  • 1.類的 構(gòu)造函數(shù) 是類的一個(gè)特殊的成員函數(shù),當(dāng)創(chuàng)建類的新對(duì)象時(shí)執(zhí)行。
    構(gòu)造函數(shù)的名稱與類的名稱完全相同,它沒有任何返回類型
using System;
namespace LineApplication
{
   class Line
   {
      private double length;   // 線條的長度
      public Line()
      {
         Console.WriteLine("對(duì)象已創(chuàng)建");
      }

      public void setLength( double len )
      {
         length = len;
      }
      public double getLength()
      {
         return length;
      }

      static void Main(string[] args)
      {
         Line line = new Line();    
         // 設(shè)置線條長度
         line.setLength(6.0);
         Console.WriteLine("線條的長度: {0}", line.getLength());
         Console.ReadKey();
      }
   }
}
結(jié)果如下:
對(duì)象已創(chuàng)建
線條的長度: 6
  • 2.默認(rèn)的構(gòu)造函數(shù)沒有任何參數(shù)。但是如果您需要一個(gè)帶有參數(shù)的構(gòu)造函數(shù)可以有參數(shù),這種構(gòu)造函數(shù)叫做參數(shù)化構(gòu)造函數(shù)。這種技術(shù)可以幫助您在創(chuàng)建對(duì)象的同時(shí)給對(duì)象賦初始值,具體請(qǐng)看下面實(shí)例:
using System;
namespace LineApplication
{
   class Line
   {
      private double length;   // 線條的長度
      public Line(double len)  // 參數(shù)化構(gòu)造函數(shù)
      {
         Console.WriteLine("對(duì)象已創(chuàng)建,length = {0}", len);
         length = len;
      }

      public void setLength( double len )
      {
         length = len;
      }
      public double getLength()
      {
         return length;
      }

      static void Main(string[] args)
      {
         Line line = new Line(10.0);
         Console.WriteLine("線條的長度: {0}", line.getLength()); 
         // 設(shè)置線條長度
         line.setLength(6.0);
         Console.WriteLine("線條的長度: {0}", line.getLength()); 
         Console.ReadKey();
      }
   }
}

結(jié)果是:
對(duì)象已創(chuàng)建,length = 10
線條的長度: 10
線條的長度: 6
  • 3.類的 析構(gòu)函數(shù) 是類的一個(gè)特殊的成員函數(shù),當(dāng)類的對(duì)象超出范圍時(shí)執(zhí)行。
    析構(gòu)函數(shù)的名稱是在類的名稱前加上一個(gè)波浪形(~)作為前綴,它不返回值,也不帶任何參數(shù)。
    析構(gòu)函數(shù)用于在結(jié)束程序(比如關(guān)閉文件、釋放內(nèi)存等)之前釋放資源。析構(gòu)函數(shù)不能繼承或重載。
    下面的實(shí)例說明了析構(gòu)函數(shù)的概念:
using System;
namespace LineApplication
{
   class Line
   {
      private double length;   // 線條的長度
      public Line()  // 構(gòu)造函數(shù)
      {
         Console.WriteLine("對(duì)象已創(chuàng)建");
      }
      ~Line() //析構(gòu)函數(shù)
      {
         Console.WriteLine("對(duì)象已刪除");
      }

      public void setLength( double len )
      {
         length = len;
      }
      public double getLength()
      {
         return length;
      }

      static void Main(string[] args)
      {
         Line line = new Line();
         // 設(shè)置線條長度
         line.setLength(6.0);
         Console.WriteLine("線條的長度: {0}", line.getLength());           
      }
   }
}

當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
對(duì)象已創(chuàng)建
線條的長度: 6
對(duì)象已刪除
  • 4.類的靜態(tài)成員
    我們可以使用 static 關(guān)鍵字把類成員定義為靜態(tài)的。當(dāng)我們聲明一個(gè)類成員為靜態(tài)時(shí),意味著無論有多少個(gè)類的對(duì)象被創(chuàng)建,只會(huì)有一個(gè)該靜態(tài)成員的副本。
    關(guān)鍵字 static 意味著類中只有一個(gè)該成員的實(shí)例。靜態(tài)變量用于定義常量,因?yàn)樗鼈兊闹悼梢酝ㄟ^直接調(diào)用類而不需要?jiǎng)?chuàng)建類的實(shí)例來獲取。靜態(tài)變量可在成員函數(shù)或類的定義外部進(jìn)行初始化。您也可以在類的定義內(nèi)部初始化靜態(tài)變量。
    下面的實(shí)例演示了靜態(tài)變量的用法:
using System;
namespace StaticVarApplication
{
    class StaticVar
    {
       public static int num;
        public void count()
        {
            num++;
        }
        public int getNum()
        {
            return num;
        }
    }
    class StaticTester
    {
        static void Main(string[] args)
        {
            StaticVar s1 = new StaticVar();
            StaticVar s2 = new StaticVar();
            s1.count();
            s1.count();
            s1.count();
            s2.count();
            s2.count();
            s2.count();         
            Console.WriteLine("s1 的變量 num: {0}", s1.getNum());
            Console.WriteLine("s2 的變量 num: {0}", s2.getNum());
            Console.ReadKey();
        }
    }
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
s1 的變量 num: 6
s2 的變量 num: 6

您也可以把一個(gè)成員函數(shù)聲明為 static。這樣的函數(shù)只能訪問靜態(tài)變量。靜態(tài)函數(shù)在對(duì)象被創(chuàng)建之前就已經(jīng)存在。下面的實(shí)例演示了靜態(tài)函數(shù)的用法:

using System;
namespace StaticVarApplication
{
    class StaticVar
    {
       public static int num;
        public void count()
        {
            num++;
        }
        public static int getNum()
        {
            return num;
        }
    }
    class StaticTester
    {
        static void Main(string[] args)
        {
            StaticVar s = new StaticVar();
            s.count();
            s.count();
            s.count();                   
            Console.WriteLine("變量 num: {0}", StaticVar.getNum());
            Console.ReadKey();
        }
    }
}
當(dāng)上面的代碼被編譯和執(zhí)行時(shí),它會(huì)產(chǎn)生下列結(jié)果:
變量 num: 3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第四章 類和對(duì)象 4.1 類和對(duì)象的基本概念 4.1.1 C和C++中struct區(qū)別 c語言struct只有變量...
    CodeDove閱讀 671評(píng)論 0 1
  • C++基礎(chǔ)2:類與對(duì)象 1. 認(rèn)識(shí)類與對(duì)象 什么是類(class)?類(class)是類型(type),是用戶自定...
    jdzhangxin閱讀 2,457評(píng)論 0 7
  • C++ 類 & 對(duì)象 C++ 在 C 語言的基礎(chǔ)上增加了面向?qū)ο缶幊?,C++ 支持面向?qū)ο蟪绦蛟O(shè)計(jì)。類是 C++ ...
    蘇州丸子閱讀 5,288評(píng)論 3 14
  • 聲明:本文內(nèi)容純屬博主自己查找和歸納的個(gè)人所需的知識(shí)點(diǎn),僅作參考,如有錯(cuò)誤,博主強(qiáng)烈希望您指出。如果您是某個(gè)知識(shí)點(diǎn)...
    _DX3906閱讀 409評(píng)論 0 0
  • 表情是什么,我認(rèn)為表情就是表現(xiàn)出來的情緒。表情可以傳達(dá)很多信息。高興了當(dāng)然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,554評(píng)論 2 7

友情鏈接更多精彩內(nèi)容