如果一个对象是一个类的实例,并且实例与我在网上看到的对象相同,那么对象的实例是什么?我真的对实例这个术语感到困惑,我阅读了很多实例和现实世界示例的定义,但我无法理解它让我很困惑。
为了确保我理解了对象的引用一词。引用是 CLR 管理的对象上的指针。指针是指向另一块内存的一块内存。引用类型是通过指针(引用)访问的数据类型?
如果一个对象是一个类的实例,并且实例与我在网上看到的对象相同,那么对象的实例是什么?我真的对实例这个术语感到困惑,我阅读了很多实例和现实世界示例的定义,但我无法理解它让我很困惑。
为了确保我理解了对象的引用一词。引用是 CLR 管理的对象上的指针。指针是指向另一块内存的一块内存。引用类型是通过指针(引用)访问的数据类型?
object
是System.Object
类的 C# 同义词。an 的实例object
是System.Object
类的实例。所有类都扩展System.Object
,类的任何实例都是object
.
假设你有一堂课Foo
。当你想创建一个Foo
对象时,你可以像这样实例化它:
Foo myFoo = new Foo();
现在存储在变量myFoo
中的对象是类 Foo 的一个实例。
碰巧你也可以说Foo
是对象的一个实例,这意味着System.Object
因为 C# 中的所有类都派生自它,但这并不是一个特别有用的说法。
对象是一个连续的内存块,它存储将这个对象与其他对象区分开来的实际信息,而实例是对一个对象的引用。它是一块内存,指向存储对象的起始地址。两个实例可能引用同一个对象。对象和实例的生命周期不相关。因此,实例可能为空。一旦所有指向一个对象的实例都被移除,这个对象就会被销毁。
一个类描述了一些东西——类似于一个模板——而一个对象是它的一个实例。
例如,我可能有一个名为“car”的类。它描述了汽车是如何启动的,它有四个门,但你不能启动它的引擎:这只是一个描述。
使用这个类,工厂制造了我的汽车(他们为我创建了我的对象)。有了这辆车,我就可以启动它的引擎并把它开走。
在代码方面,我将定义car
为:
public class Car {
public int Doors { get { return 4; } }
public void StartEngine() {
// start engine
}
}
然后工厂为我制作:
Car MyCar = new Car();
然后我把它赶走:
MyCar.StartEngine();
MyCar.DriveAway();
从语法上讲,我同意“对象的实例”听起来是同义反复。“对象”的实例会更好。但是,如果您将“对象”视为 dasblinkenlight 解释的“对象类”,则更有意义。