2
public class Neat {

    public Neat asdf;
}

这会成为 Neat 类的对象吗?我目前正在尝试学习链接列表,如果有帮助的话。

我不知道如何谷歌这个,对不起。

4

4 回答 4

3

这将创建一个名为的类,该类Neat声明一个名为asdftype的成员变量Neat。成员变量asdf是对 的引用null

此代码按原样不创建对象的实例Neat

于 2013-10-31T02:15:12.190 回答
0

这是一个具有与该类相同类型的成员变量的类。在这种情况下这是完全合法的,但它可能很危险。例如,如果您更改代码以仅实例化变量

public Neat asdf = new Neat();

然后在Neat别处创建一个,你的程序会StackOverflowError因为每个实例创建一个新实例而崩溃,这又创建一个新实例,以此类推。就目前而言,您的程序创建了一个引用变量,但没有创建实例,因此不会创建更多实例。

于 2013-10-31T02:17:42.047 回答
0

这声明了一个类型为 的字段Neat。所以 Neat 对象会有一个 childrenNeat字段。

 Neat n = new Neat();
 n.asdf = new Neat();
于 2013-10-31T02:14:37.373 回答
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 ......

于 2013-10-31T02:30:01.863 回答