public class Neat {
public Neat asdf;
}
这会成为Neat类的对象吗?我正在尝试学习链接列表,如果有帮助的话。
我不知道如何谷歌这个,抱歉。
答案 0 :(得分:3)
这将创建一个名为Neat
的类,该类声明一个名为asdf
的{{1}}类型的成员变量。成员变量Neat
是对asdf
的引用。
此代码不会创建对象null
答案 1 :(得分:0)
这声明了Neat
类型的字段。所以Neat对象将有一个子Neat
字段。
Neat n = new Neat();
n.asdf = new Neat();
答案 2 :(得分:0)
这是一个具有成员变量的类,该变量与类的类型相同。在这种情况下,这是完全合法的,但它可能是危险的。例如,如果您将代码更改为仅实例化变量
public Neat asdf = new Neat();
然后在其他地方创建Neat
,您的程序将以StackOverflowError
崩溃,因为每个实例都会创建一个新实例,从而创建一个新实例,依此类推。就目前而言,您的程序会创建一个引用变量,但不会创建实例,因此不会创建更多实例。
答案 3 :(得分:0)
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 ......