我正在學習C#,我想知道爲什麼我們創建類的實例。爲什麼我們要創建類的實例?
Customer myCustomer = new Customer();
myCustomer.name = "harry";
當我在網上搜索我總是得到「如何讓實例」但是這不是我的問題。 我知道如何製作它們。 爲什麼是我的問題。 是因爲我們像數據類型一樣使用它們嗎?像複雜的數據類型一樣。
我正在學習C#,我想知道爲什麼我們創建類的實例。爲什麼我們要創建類的實例?
Customer myCustomer = new Customer();
myCustomer.name = "harry";
當我在網上搜索我總是得到「如何讓實例」但是這不是我的問題。 我知道如何製作它們。 爲什麼是我的問題。 是因爲我們像數據類型一樣使用它們嗎?像複雜的數據類型一樣。
可以說你正在建立一些聯繫人應用程序。然後,將會有一個名爲Contact的類。您將爲每個需要保存的聯繫人創建一個Contact類的實例。你不能保存所有聯繫人在單個實例。每個聯繫人都有不同的屬性。像名字,姓氏,電子郵件,電話號碼等。
在上面的代碼示例中,您正在嘗試創建客戶實例。如果您有很多客戶,那麼您肯定會爲每位客戶創建一個實例,以跟蹤所有客戶。
通常我們使用一個類來表示我們系統中的特定實體。在你的例子中,你有一個類來表示一個客戶。然而(希望)你擁有多個客戶!爲了表示這個,你有兩個客戶類的例子,一個是哈利和一個是傑瑞。
傑裏和哈利是兩個不同的客戶,但你的系統包含每個相同的信息(他們的名字,客戶訂單,最近的購買等)。
當需要擴展系統以包含不同的商店時,您可以創建一個名爲Shop
的新類,其中包含代表您的倫敦,紐約和悉尼商店的實例。
一個類的實例獲取一塊內存分配給它來存儲它的內部變量。這意味着一個實例的變量與另一個實例的變量是隔離的。
如果這是您的第一個面向對象的編程語言,您正確地做了這件事,瞭解它的工作原理非常重要。
一類是由它的方法和atributes定義,但你需要初始化它開始使用這些方法和屬性而值,例如:
myCustomer.name = " harry"
在這種情況下,「名」是的屬性客戶類和你設置哈利的名字只有一個實例化的客戶,而不是類,該類不會有任何值,只有定義的屬性和方法。
同樣的事情會與方法,例如:
myCustomer.setName("harry");
(如果屬性「名」是私有的)
您實例,並從主類調用方法,其他類製成定義方法和屬性,然後使用它們實例化。
另請參閱:CodeProject introduction to OOP,Wikipedia article Class。
該類可以具有值,但方法也是如此,而不被實例化。 – maksymiuk
嗯,我想你基本上回答你自己的問題沒有?
它是因爲class
只是一種類型。如果我說,Customer
今天進入商店,你會得到一個人的類型的想法,客戶。但是如果我說"Harry"
是我店裏的客戶,那麼您明白我特別只會談論一個Customer
。我所說的"Harry"
對他來說是單數,並且與整個其他Customers
幾乎沒有關係。
Customer myCustomer = new Customer();
myCustomer.name = "harry";
我的意思是,它幾乎完全是人類可讀的。這樣想想:
// Type // instance
Color myColor = new Color(255,0,0); // red
確切地說,這是因爲我們使用它們作爲數據類型。 –