public class Neat {
public Neat asdf;
}
这会成为 Neat 类的对象吗?我目前正在尝试学习链接列表,如果有帮助的话。
我不知道如何谷歌这个,对不起。
这将创建一个名为的类,该类Neat
声明一个名为asdf
type的成员变量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 ......