不明白为什么类自身的实例化对象能作为类的属性出现,另外下面的代码为什么会报错?
package com.sdb.test;
public class Test1 {
public Test1 t1 = new Test1();
public void m1() {
System.out.println(t1);
}
public static void main(String[] args) {
Test1 tt = new Test1();
tt.m1();
}
}
能作为属性出现其实很正常啊,但有风险,比如说你现在的报错就是自身作为属性间接导致的。在创建一个Test1对象时,Test1下的属性也要实例化一个Test1,紧接着这一个Test1又要实例化另一个Test1,导致这个程序一直无限的实例化Test1对象,导致内存溢出而报的错。自身作为属性出现时,不应该直接在属性上实例化