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)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |