C#中類爲何要實例化

在使用C#語言時,發現一下有關類實例化的問題,在此以前先複習一下類和對象的概念,類是一個抽象體,是對一類事物的抽象體;而對象就是一個具體的事物,對象的抽象就是類。車就是一個類,而車包括麪包車,小汽車,跑車等這些對象,若是維修一輛車,我不能說我維修車,而你維修的是一輛能看得見,摸得着的具體的這輛小汽車。因此要使用類,必須經過對象來達到效果。spa

【需實例化】code

         在使用類的非靜態方法或屬性時,必須將類實例化對象

         能夠這樣理解,把類比作蓋房的圖紙,若是要使用房子的功能,如住人,得有真實存在的房子實體才行,因此要想使用房子的功能,須要把圖紙轉化爲房子實體,這個過程就稱爲實例化過程。blog

        如下代碼中,要想調用Name屬性和shout方法,必須先將Cat類實例化get

class Program
    {
        static void Main(string[] args)
        {
            Cat c = new Cat();
            c.Name = "小貓";
            c.shout();
            Console.Read();
        }
    }
    class  Cat
    {
        string name ;
        public  string Name
        {
            get { return name; }
            set { name = value; }
        }
        public void shout()
        {
            Console.WriteLine("我是{0},喵",Name);
        }
    }

【不需實例化】string

        在使用類的靜態方法或屬性時,不用將類實例化it

        能夠這樣理解,我想使用圖紙上房子的長寬高時,我沒必要先建一座房子才能知道或使用它的長寬高,我能夠直接把值從圖紙上拿出來使用,只要是這個值,建的房子的長寬高都同樣,因此就不須要實例化了,此種狀況長寬高就爲靜態屬性/方法。class

        如下代碼中,Name屬性和shout方法能夠經過類直接調用(與上面不一樣之處就是在字段、屬性、方法以前加了關鍵字static)方法

class Program
    {
        static void Main(string[] args)
        {
            Cat.Name = "小貓";
            Cat.shout();
            Console.Read();
        }
    }
    class  Cat
    {
        static string name ;
        public static string Name
        {
            get { return name; }
            set { name = value; }
        }
        public static void shout()
        {
            Console.WriteLine("我是{0},喵",Name);
        }
   }