2017-06-02 7 views
-2

Ich habe versucht, diesen grundlegenden Code zu kompilieren und kann nicht meine Hauptmethode, um eine andere Methode aufzurufen. Aus meiner Sicht muss ich kein Objekt erstellen, da beide Methoden in derselben Klasse sind.Fehler beim Aufruf einer Methode in der gleichen Klasse

Allerdings gibt es mir die Fehler-Java: '.class' erwartet - wenn ich meine Methode aufrufen. Wer weiß, warum:

public class Main { 
     double x=0; 

     public static void main(String[] args) { 
      Function(double x); 

     } 
     public static double Function(double x) { 
      x+=5; 
      return x; 

     } 
     } 
+1

Verwenden Sie Camelcase-Namen für Methoden, beginnend mit Kleinbuchstaben. Java ist nicht 'C#' oder 'VB.NET' –

Antwort

1

Sehen Sie, was Sie in der Haupt-Methode tun:

public static void main(String[] args) { 
    Function(double x); 
} 

Sie eine Methode, wie Function(double x); Aufruf aber das ist nicht richtig, entfernen Sie den Typ double, dann müssen Sie Machen Sie die Variable x statisch, weil Sie in einem statischen Kontext sind, danach übergeben Sie einfach das Argument x als Parameter;

mag:

static double x = 0; 

public static void main(String[] args) { 
    Function(x); 
} 

Option2 statische Dinge loszuwerden off wird immer und Instanzen verwenden ...

class Main { 
    double x = 0; 

    public static void main(String[] args) { 
     Main m = new Main(); 
     m.function(m.x); 
    } 

    public double function(double x) { 
     x += 5; 
     return x; 
    } 
} 
+2

' x' ist nicht statisch und kann daher nicht aus dem statischen Kontext verwendet werden. – Parth

0

Variablen nicht statisch nicht von einer statischen Methode aufgerufen werden kann. Rufen Sie es auf, indem Sie das Objekt der Klasse erstellen, in dem die Variable deklariert ist.

public class Main { 
    double x=0; 
    public static void main(String[] args) { 
     Main mm=new Main(); //Creating Object of Class 
     Function(mm.x);  //pass the value with object.var 
    } 
    public static double Function(double x) { 
     x+=5; 
     return x; 
    } 
} 
Verwandte Themen