在使用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); } }