2014-10-25 2 views
-1

Как перезапустить мою программу?Rerun, вспомните основной метод/программу

У меня есть класс под названием Class Game И в этом у меня есть основной метод. И playagain класс, который выглядит следующим образом:

public void playAgain() { 

    System.out.println("GAME OVER. Want to play again? (y/n)"); 
    String playagain = scan.nextLine(); 
    if (playagain.equals("y")) { 
     // call the main method and rerun the program 
    } 
    else { 
     System.out.println("OK, Goodbye"); 
     System.exit (0); 
    } 
} 

Как я перезапускать и вспомнить мой основной метод? Простое создание нового объекта существующего класса не работает.

+0

Вы взглянули в петлях? (для цикла, while loop и т. д.) поможет любой базовый учебник по Java. –

ответ

1

Основной метод Java - static, что означает, что JVM может вызывать его без создания какого-либо экземпляра класса, который содержит основной метод. Это единственная точка входа вашей программы, которую вы не можете вспомнить основной метод из класса

Вместо этого поместите свой код из основного метода в другой, и вы называете его столько раз, сколько пожелаете.

+0

Вы можете вызвать статический метод из любого контекста ... –

+0

Вы, безусловно, можете вызвать какой-либо статический метод ... –

+0

исправлено - я имел в виду главный вызов – njjnex

0

Попробуйте петлю! Особенно может помочь цикл while!

+0

Да. Это верно. Как? – Tirath

0

Вы должны переместить реализацию игры вне main метод что-то вроде этого:

public class Game { 

    public void playAgain() { 
    System.out.println("GAME OVER. Want to play again? (y/n)"); 
    String playagain = scan.nextLine(); 
    while (playagain.equals("y")) { 
     // just call the playGame again 
     playGame(); 
     System.out.println("GAME OVER. Want to play again? (y/n)"); 
     playagain = scan.nextLine(); 
    } 
    System.out.println("OK, Goodbye"); 
    } 

    public void playGame() { 
    // Move implementation from main method here instead. 

    } 

    public static void main(String args[]) { 
    Game game = new Game(); 
    game.playGame(); 
    game.playAgain(); 
    } 
} 
Смежные вопросы