[英]Objects in java won't execute in main class
我有點編程的菜鳥。 大約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;
}
}
在DialogueOption
您正在創建一個userinput
,后者又在創建一個DialogueOption
對象。 這將創建一個鏈,該鏈將繼續初始化對象,直到最終遇到stackoverflow異常為止。
您需要更改設計,以避免這種循環依賴性。
另請注意,替換while(Dialogue1.badinput = true);
with while(Dialogue1.badinput == true);
或while(Dialogue1.badinput);
檢查一下:您的new DialogueOption()
創建一個新的userinput userin = new userinput();
這將創建一個新的DialogueOption Dialogue1 = new DialogueOption();
這將創建一個新的userinput userin = new userinput();
這會一直持續下去,直到達到stackoverflow。
按照定義,類也以大寫開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.