我正在学习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
确切地说,这是因为我们使用它们作为数据类型。 –