C#中類為什么要實例化


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

【需實例化】

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

         可以這樣理解,把類比做蓋房的圖紙,如果要使用房子的功能,如住人,得有真實存在的房子實體才行,所以要想使用房子的功能,需要把圖紙轉化為房子實體,這個過程就稱為實例化過程。

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

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);
        }
    }

【不需實例化】

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

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

        以下代碼中,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);
        }
   }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM