前提:
1.问一个简单的问题:
A是一个对象,然后 a1,a2,a3是A的实例。
问题:
在内存里A的成员方法,非静态的。
a1,a2,a3的成员属性与方法都是有3份吗?这些方法都是共用的。
在js里有个原型对象的问题,如果是共用的就只占一份内存。现在在.net里的情况是怎样呢?
1.问一个简单的问题:
A是一个对象,然后 a1,a2,a3是A的实例。
问题:
在内存里A的成员方法,非静态的。
a1,a2,a3的成员属性与方法都是有3份吗?这些方法都是共用的。
在js里有个原型对象的问题,如果是共用的就只占一份内存。现在在.net里的情况是怎样呢?
----------------
a b c / 参数来自外部
| | | | / |
| | | | / f1 (argumentA)
| | | | 访问成员<- 函数表 - f2 (argumentA)
| | | | \ f3 (argumentA)
| | | | \ |
| | | | \参数来自外部
----------------
其实我想问的是,作为 A 的实例,a1,a2,a3他们都自己存储了A的函数吗?
问题中,有一个概念上的错误:“A是一个对象,然后 a1,a2,a3是A的实例。”请注意:类的实例化就是对象,所以,一般来说,对象就是类的实例,两者没有区别。
应为“A是一个类,然后 a1,a2,a3是A的实例。”1. 所有静态的成员(字段、属性、方法),所有实例共用一份。
2. 非静态字段,每实例一份。
3. 非静态属性与非静态方法,所有实例共用一份方法中的代码,每实例一份方法中的数据。
应为“A是一个类,然后 a1,a2,a3是A的实例。” 1. 所有静态的成员(字段、属性、方法),所有实例共用一份。
2. 非静态字段,每实例一份。
3. 非静态属性与非静态方法,所有实例共用一份方法中的代码,每实例一份方法中的数据。
这个回得得很贴切。
请问数据与元数据要到什么地方研究,什么书?