【发布时间】:2015-12-25 15:43:39
【问题描述】:
我是一个编程菜鸟。大约2个月前开始,一直在努力变得更好。我刚刚转向面向对象的东西,但遇到了一些麻烦。我写了这个测试程序,但没有一个会执行。它没有任何错误,但在控制台中它会重复
"Exception in thread "main" java.lang.StackOverflowError
at userinput.<init>(userinput.java:4)
at DialogueOption.<init>(DialogueOption.java:5)
一遍又一遍。 这里是三个类。如有格式错误,请见谅。
一等
public class window{
public static void main(String args[]){
DialogueOption Dialogue1 = new DialogueOption();
userinput userin = new userinput();
Dialogue1.responseList();
userin.FIResponse();
Dialogue1.dialogueOP();
while(Dialogue1.badinput = true);
Dialogue1.responseList();
userin.FIResponse();
Dialogue1.dialogueOP();
}
}
二等
public class DialogueOption extends window {
int DialogueOp1;
window win = new window();
userinput userin = new userinput();
public boolean badinput;
public void responseList(){
System.out.println("Get out of bed, you lazy ****.");
System.out.println("1. **** you, bro. I'm staying in bed.");
System.out.println("2. Fine, lets go to class.");
System.out.println("3. Eh?");
}
public void dialogueOP() {
userin.FIResponse();
switch(userin.Response){
case 1:
System.out.println("**** you then");
break;
case 2:
System.out.println("Good guy");
break;
}
if(userin.Response >= 3){
System.out.println("Bad input, try again.");
badinput = true;
}
}
}
第三类
import java.util.Scanner;
public class userinput extends window {
DialogueOption Dialogue1 = new DialogueOption();
public int Response;
public void FIResponse(){
Scanner input = new Scanner(System.in);
int response = input.nextInt();
Response = response;
}
}
【问题讨论】:
-
我完全忘记了我的少年对话选项,对不起,如果我冒犯了你 D:
-
所以它现在可以工作了,但是它运行起来很慢并且占用了大量的cpu。它在输入旁边的第三堂课上说存在资源泄漏并且扫描仪永远不会关闭。有没有办法解决这个问题?
标签: java class object main execute