在Java中构造新对象时出现Stack Overflow错误

Dra*_*ake 2 java stack-overflow object

我正在尝试使用一组特定值构造一个PackingCase对象.虽然程序在编码期间没有显示错误,但在运行时,我收到此错误;

Exception in thread "main" java.lang.StackOverflowError
at assignment.pkg2.PackingCase.<init>(PackingCase.java:59)
at assignment.pkg2.PackingCase.<init>(PackingCase.java:60)
Run Code Online (Sandbox Code Playgroud)

我的代码如下;

public class PackingCase {
// private fields go here

int serialNumber;
int timesUsed;
int timeCreated;
int timeStored;
String name;
String description;


void setCase(int s, int TU, int TC, int TS){
    serialNumber = s;
    timesUsed = TU;
    timeCreated = TC;
    timeStored = TS;

}

double volume(){
    return serialNumber*timesUsed*timeCreated*timeStored;
}

public PackingCase(){ 
    PackingCase PC1 = new PackingCase();
    double vol;

    PC1.setCase(1, 2, 3, 4);

    vol = PC1.volume();
    System.out.println(""+vol);




}
Run Code Online (Sandbox Code Playgroud)

第59行是"public PackingCase(){",第60行是"PackingCase PC1 = new PackingCase();".我不知道发生了什么,考虑到我发现的一个例子使用了几乎相同的代码结构,并且编译时没有任何错误.任何帮助,将不胜感激.

MBy*_*ByD 10

每次创建新对象都会导致创建另一个新对象(依此类推......),直到堆栈溢出为止.

相反,它应该是这样的:

public PackingCase(){ 
    this.setCase(1, 2, 3, 4);
    vol = this.volume();
    System.out.println(""+vol);
}
Run Code Online (Sandbox Code Playgroud)