2016-11-22 2 views
0

Я изучаю курс java в своем колледже, и мы используем библиотеку под названием acm. Но когда мы пишем код, мы не создаем основной метод. «public void run() {}» действует как основной метод. Объясните пожалуйста.Как моя программа запускается, когда у меня нет основного метода

Для примера вот программа, которую я создал.

import acm.program.ConsoleProgram; 
import acm.util.RandomGenerator; 

public class Assignment3 extends ConsoleProgram { 

    private static final long serialVersionUID = 1L; 
    private RandomGenerator rgen = RandomGenerator.getInstance(); 

    public void run() { 
     final int QUESTION_AMOUNT = 5; 

     println("Welcome to the Math Quiz! You have " + QUESTION_AMOUNT + " questions to answer! Good luck!"); 

     for (int i = 0; i < QUESTION_AMOUNT; i++) { 
      askQuestion(); 
     } 

     println("End of the quiz!"); 
    } 

    public void askQuestion() { 
     int num1, num2, kidanswer, realanswer; 
     String operation = ""; 
     boolean x = rgen.nextBoolean(); 

     if (x == true) { 
      operation = "+"; 
     } else { 
      operation = "-"; 
     } 

     if (operation == "-") { 
      num1 = rgen.nextInt(0, 20); 
      num2 = rgen.nextInt(0, num1); 
     } else { 
      num1 = rgen.nextInt(0, 20); 
      num2 = rgen.nextInt(0, 20 - num1); 
     } 

     String question = ("What is " + num1 + " " + operation + " " + num2 + " = "); 

     if (operation == "-") { 
      realanswer = num1 - num2; 
     } else { 
      realanswer = num1 + num2; 
     } 

     kidanswer = readInt(question); 

     int i = 0; 
     while (i < 2) { 
      if (kidanswer == realanswer) { 
       println("That is correct! Well done!"); 
       break; 
      } else { 
       kidanswer = readInt("Wrong answer. Please try another answer: "); 
       i++; 
       if (i == 2) { 
        if (kidanswer == realanswer) { 
         println("That is correct! Well done!"); 
        } else { 
         println("Sorry :(Out of tries! The answer was: " + realanswer); 

        } 
       } 
      } 
     } 
    } 
} 
+0

как большой заметка на полях: [Как сравнить строки в Java] (http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) – SomeJavaGuy

ответ

1

Потому что:

+0

Ах я получаю он, вероятно, добавил это, чтобы новички не смущали. Благодаря ! –

+0

@ S.Cakici Иронично, что это имело противоположный эффект, а? – Gendarme

+0

@Gendarme Ха-ха да :) Мне было интересно, что такое public void run() с самого начала класса. –

1

Что-то должен обеспечить основной метод. В вашем случае это почти наверняка будет ACM-материал (ConsoleProgram), который ваш класс расширяет и который в какой-то момент вызовет ваш метод run.

Смежные вопросы