日期:2014-05-20  浏览次数:20699 次

关于类的实例化的疑惑,望大家帮我解决一下~~~~~
假设有类A,类B
在类B中实例化类A,那类A中的里的变量是否也被实例化了呢?
Class   A()
{
public   int   a;
public   void   f()
{
}
}
Class   B()
{
A   a=new   A();
}
像上面的例子中,调用了A   a=new   A()后,那类A中的a是否也被实例化了呢?

------解决方案--------------------
實例化B后﹐則B中的私有變量A也同時被實例化,
注意﹕B中的a和A中的a是不一樣的.
B.a表示的是A的實例
B.a.a表示的是B中A的實例a中的成員a
------解决方案--------------------
A a=new A()之后执行了A的构造函数
public int a;由于是值类型,因此,也就被初始化了
如果是这样情况
Class A

public C c;


那么,c并没有被实例化
假设如果A的构造函数是这样
A()
{
c = new C();
}
那么,
A a = new A();之后
c,就被实例化,原因是在A的构造函数里,实例化了
------解决方案--------------------
new 是实例化
在IL 中是这样的
先全部初始化里面的局部的成员
随后调用.ctor()成员