| 在一些情況下,程式可導致構造器進行無限遞迴,如: public class ConstrucorRecursion { { ConstrucorRecursion rc = new ConstrucorRecursion(); } public ConstrucorRecursion() { System.out.println("程式執行無參數的構造器"); } public static void main(String[] args) { ConstrucorRecursion rc = new ConstrucorRecursion(); } } |
|
public class InstanceTest{ private String name; //持有當前類的執行個體 private InstanceTest instance; //定義一個無參數的構造器 public InstanceTest() { } //定義有參數的構造器 public InstanceTest(String name) { //調用無參數的構造器初始化intance執行個體 instance = new InstanceTest(); instance.name = name; } //重寫toString()方法 public String toString() { return "InstanceTest[instance="+ instance + "]"; } public static void main(String[] args) { InstanceTest in = new InstanceTest(); InstanceTest in2 = new InstanceTest("測試name"); //讓兩個對象相互引用 in.instance = in2; in2.instance = in; System.out.println(in); System.out.println(in2); }}