2014-02-06 2 views
-3

Я только что перечитал свои сценарии лекций и попробовал там код. Проблема в том, что профессор дал нам только фрагменты кода, и я действительно застрял на этом. Я получаю эту ошибку в Eclipse:Ошибка «Основной метод не найден» - что отсутствует в этом коде?

не основной метод

я все еще получаю ошибку, даже если я ставлю public static void main(String[] args) в коде. Что я должен изменить?

Основная идея этой программы - вычислить квадратный или квадратный корень.

public class MeineKlasse { 

    private String job; 

    private String getJob() { 
     return job; 
    } 

    public void setJob(String job) { 
     this.job = job; 
     System.out.println(job); 
    } 

    public double myMethode(double x) throws Exception { 
     if (job.equals("quadrat")) 
      return x * x; 
     if (job.equals("wurzel")) 
      return Math.sqrt(x); 
     System.out.println(myMethode(x) + "="); 
     throw new Exception("Fehler:Aufgabe nicht korrekt definiert"); 
    } 
} 
+6

А где «основной» метод? – AntonH

+2

Вам не нужен основной метод. – Omoro

+0

http://stackoverflow.com/questions/5219306/why-a-java-program-should-have-a-main-method?lq=1 – user2864740

ответ

6

Каждая программа нуждается в пункте входа. Точка входа в любую программу Java является

public static void main(String[] args)

Вы должны реализовать этот метод. Он запустит остальную часть вашего приложения.

0

Если вы получили ошибку, как никакой основной метод, это означает, что вам пришлось поместить ваш основной метод в неправильное место. Убедитесь, что ваши фигурные скобки закрыты и соответствуют этой структуре

public static MeineKlasse { 
    public static void main(String[] args) { 
     //your code 
     //... 
     //... 
     //... 
    } 
} 
+2

Это приведет к ошибке компилятора. – user2864740

-1

Что говорит AlexR правильно. Каждая программа нуждается в основном методе, который запускает программу.

Вы можете исправить это с чем-то вроде этого:

public class MeineKlasse { 

    private String job; 

    public static void main(String[] args) { //main method 
     MeineKlasse meineKlasse = new MeineKlasse(); 
     meineKlasse.setJob("quadrat"); 
     System.out.println(meineKlasse.myMethode(3.6)); 
    } //end main method 

    private String getJob() { 
     return job; 
    } 
    . 
    . 
    . 
} 

Еще одна проблема, у вас есть в myMethode(double x).

public double myMethode(double x) throws Exception { 
    if (job.equals("quadrat")) 
     return x * x; 
    if (job.equals("wurzel")) 
     return Math.sqrt(x); 
    System.out.println(myMethode(x) + "="); //this line 
    throw new Exception("Fehler:Aufgabe nicht korrekt definiert"); 
} 

В строке 6 метод называет себя. Когда он называет себя, он повторяет метод снова, включая вызов самого себя. Поскольку он только что вызвал себя снова, он будет проходить через код до тех пор, пока он не назовет себя и т. Д. Это приведет к StackOverflowException, потому что метод в противном случае повторился бы навсегда. Чтобы исправить это, вы можете просто удалить строку, так как программа уже печатает результат в основном методе.

+1

'getJob' не является статичным, так что вам не нужно создавать экземпляр, прежде чем называть его в своем главном? –

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