在一个没有方法的类中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(); //没有这句就没有问题(有这句编译没问题,执行有问题)。
}
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类里面又new个Dog,相当于无限递归
到new时又调用了Dog的构造方法
而构造方法是在Dog类定义的时候就自动有了,这样出了这个方法又会回到new语句,又调用了构造方法所以就无限递归了。新手不懂
你的意思是两个xiaohei 是同一个吗,但我换个名字还是有问题啊。算了不纠结了,以后应该会懂得。刚开始学习很多概念都不是很清楚。
不是同一个,
每一个Dog里都有一个另外一个Dog,
你实例化的时候,又需要实例化它的子Dog,子Dog也一样实例化它自己的子子Dog。没完没了