2014-02-06 2 views
-3

방금 ​​강의 스크립트를 다시 읽고 코드를 시험해 보았습니다. 문제는 교수가 우리에게 코드 조각만을 주었고 실제로이 코드에 붙어 있다는 것입니다. 나는 이클립스에서이 오류가없는 계속 : 나는 아직도 내가 코드에 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

'main'메소드는 어디에 있습니까? – AntonH

+2

기본 방법이 없습니다. – Omoro

+0

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

답변

6

모든 프로그램에는 진입 점이 필요합니다. 모든 자바 프로그램에 대한 진입 점은이 방법을 구현해야

public static void main(String[] args)

입니다. 나머지 응용 프로그램이 실행됩니다.

0

메인 메쏘드와 같은 오류가 발생하면 주 메쏘드를 틀린 장소에 놓아야한다는 의미입니다. 중괄호도 닫혀 있는지 확인하고이 구조를 따르십시오.

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

그러면 컴파일러 오류가 발생합니다. – user2864740

-1

AlexR의 답변은 정확합니다. 모든 프로그램에는 프로그램을 실행하는 main 메소드가 필요합니다.

이 같은 그것을 해결할 수 :

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이 발생합니다. 그렇지 않으면 메서드가 다른 방식으로 영원히 반복 될 것이기 때문입니다. 이 문제를 해결하려면 프로그램에서 이미 main 메소드의 결과를 인쇄하기 때문에 선을 제거하면됩니다.

+1

'getJob'은 정적이 아니므로 메인에서 호출하기 전에 인스턴스를 생성하지 않아도됩니까? –