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

没有方法的类中new一个自己会出错!
在一个没有方法的类中new一个本类的对象会出错
public class Problem
{

public static void main (String[] args)
{
Dog xiaohei = new Dog ();
System.out.println (xiaohei.colour);

}
}

class Dog
{
int colour;
Dog xiaohei = new Dog(); //没有这句就没有问题(有这句编译没问题,执行有问题)。

}

------解决方案--------------------
实例化Dog时会执行初始化类,给成员变量赋值。当然就要执行Dog xiaohei = new Dog();这一句,你可以自己加构造方法打印一句话,看看就知道了,会不断地创建对象。
------解决方案--------------------
你的意思是两个xiaohei 是同一个吗,
不是同一个,
每一个Dog里都有一个另外一个Dog,
你实例化的时候,又需要实例化它的子Dog,子Dog也一样实例化它自己的子子Dog。没完没了