2016-10-12 2 views
-1

könnte jemand bitte erklären, warum die folgende Methode nicht funktioniert und gibt die folgende Fehlermeldung zurück: "Ausnahme im Thread" main "java.lang.RuntimeException: Uncompilable-Quellcode - Fehlerhafter Baum Typ: "math.pow in Methode Ergebnisse zu einem Fehler

class Example01 { 
    public static void main(String[] args) { 
    System.out.println(myExp(2)); 
    } 
    double myExp(int x) { 
    return Math.pow(x,2); 
    } 
} 

ich dachte, es für die Verwendung von int-Variable in Math.pow sein könnte, aber ich versuchte es auf diese Weise, ohne ein Verfahren einrichten und es funktionierte ok:

System.out.println(Math.pow(2,2)); 

könnte jemand bitte geben ein bisschen Geschmack darüber, warum die Methode das Ergebnis nicht liefert?

Vielen Dank, Vlad

+2

nur Problem, das ich sehe, ist die 'myExp' –

+0

nach Java-Dokumentation' Math.pow (double, double) eine statische Funktion sein sollte '. https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#pow(double,%20double) –

Antwort

0

Änderung der Methode double myExp(int x) zu static double myExp(int x).

0

Methode double myExp(int x) sollte statisch sein.

0

Sie müssen myExp static deklarieren.

static double myExp(int x) { 
    return Math.pow(x,2); 
} 

oder Sie können eine EXAMPLE01 Klasse instanziiert und die Funktion aufrufen.

class Example01 { 
    public static void main(String[] args) { 
    Example01 ex = new Example01(); 
    System.out.println(ex.myExp(2)); 
    } 
    double myExp(int x) { 
    return Math.pow(x,2); 
    } 
} 
0

in Java alle nicht-statische Methode sind beispielsweise Verfahren, dh sie eine Instanz oder ein Objekt erfordern upon.Either erklärt Ihr myExp(int x) Methode statisch, dh static double myExp(int x) oder instanziiert Ihre Klasse aufgerufen werden, um ein Objekt zu erstellen und dann rufen myExp(int x) auf sie also

class Example01 { 
public static void main(String[] args) { 
Example01 example = new Example01(); 
System.out.println(example.myExp(2)); 
} 
double myExp(int x) { 
return Math.pow(x,2); 
} 
} 
Verwandte Themen