作者shishe (贾富贵)
站内C_Sharp
标题[问题] 关于一个类声明时有一个元素是这个类的实例的问题
时间Thu May 26 02:34:24 2011
class yilei
{
public int x = 2;
public int y = 7;
public int fangfa(int u, int v)
{
return u + v;
}
public int ziji()
{
return x * y;
}
public static yilei bb = new yilei();
}
这个类声明的最后一个元素是这个类本身的一个实例,但声明为静态的,经验证这个类
没有错误,可以实例化,但如果不声明为静态的,就不能实例化,会产生无限递归。
我明白,当类实例化时,静态元素先于类实例化之前产生,且只产生一次,但还是想不
清楚,实例化时应该是最先产生"bb"这个元素,但要产生"bb",则必须调用构造函数,但
调用构造函数时,又必须先产生“bb”元素,这也是无限递归啊。
为什了作为静态变量就可以?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 221.5.69.43
1F:→ apiod:static只能产生一次 第二次就会跳出了 (应该吧.....) 05/26 03:01
2F:→ tfshnike:我猜是静态类别成员属於类别,类别成员属於物件 05/26 13:23