public class Neat {
public Neat asdf;
}
这会成为 Neat 类的对象吗?我目前正在尝试学习链接列表,如果有帮助的话。
我不知道如何谷歌这个,对不起。
这将创建一个名为的类,该类Neat声明一个名为asdftype的成员变量Neat。成员变量asdf是对 的引用null。
此代码按原样不创建对象的实例Neat
这是一个具有与该类相同类型的成员变量的类。在这种情况下这是完全合法的,但它可能很危险。例如,如果您更改代码以仅实例化变量
public Neat asdf = new Neat();
然后在Neat别处创建一个,你的程序会StackOverflowError因为每个实例创建一个新实例而崩溃,这又创建一个新实例,以此类推。就目前而言,您的程序创建了一个引用变量,但没有创建实例,因此不会创建更多实例。
这声明了一个类型为 的字段Neat。所以 Neat 对象会有一个 childrenNeat字段。
Neat n = new Neat();
n.asdf = new Neat();
public class Neat {
public Neat asdf; //Focus here
public static void main(String...string){
Neat n = new Neat();
}
}
不,它不会创建一个对象,它只是一个变量,有可能拥有 Neat 类的对象,但是
public class Neat {
public Neat asdf = new Neat(); //Focus here
public static void main(String...string){
Neat n = new Neat();
}
}
它将产生尽可能多的 Neat 对象并最终导致 StackOverFlow ......