2016-05-12 18 views
0

Ich habe eine Methode in einer Klasse geschrieben und möchte sie in einer anderen Klasse aufrufen, d. H. Das Ergebnis ausdrucken. Dies ist die Klasse Methode:Eine parametrisierte Methode von einer anderen Klasse aufrufen

public class squareRoot { 

    public double absoluteValue(double x){ 
     if (x < 0) 
      x = -x; 
     return(x); 
    } 

    public double squareRoot(double x){ 
     double epsilon = .00001; 
     double guess = 1.0; 

     while(absoluteValue(guess * guess - x) >= epsilon) 
      guess = (x/guess + guess)/2.0; 
     return guess; 
    } 
} 

Die zweite Klasse ist eine einfache GUI-Klasse, und ich wünsche dem squareRoot Methode aufzurufen. Ich erhalte die Benutzereingabe und versuche dann, die Funktion so zu drucken (wobei x die Benutzereingabe in der GUI-Klasse ist). Allerdings ist es nicht funktioniert

squareRoot(x); 
+0

Bitte geben Sie weitere Details über die Art und Weise, in der es nicht funktioniert. Erhalten Sie einen Fehler, eine falsche Berechnung, einen Übersetzungsfehler usw.? Bitte zeigen Sie auch, wie Sie die squareRoot-Klasse instanziieren und verwenden –

+0

@RobMcFeely Ich habe ein Objekt der squareRoot-Klasse, squareRoot obj; – robinhood46

Antwort

3

Ihre Methode als statisch deklarieren

public static double squareRoot(double x) 

und dann rufen Sie durch

System.out.println(squareRoot.squareRoot(x)); 
+0

Danke! Problem gelöst – robinhood46

0

Seien Sie vorsichtig mit statischen Ansätze, in komplexeren Systemen müssten Sie zweimal überlegen, bevor Sie eine statische deklarieren.

Ich empfehle zu diesem Zweck eine Instanz erstellen squareRoot sqr = new squareRoot();

Anschließend können Sie die Klassenmethode aufrufen, indem Sie z sqr.squareRoot(int value)

Verwandte Themen