2016-11-14 5 views
-1

Ich bekomme ständig diesen Fehler beim Versuch, dieses Programm zu kompilieren - ich weiß, dass statische Variablen klassenweite Variablen sind, und nicht in nicht statische Methoden oder Variablen gebracht werden können. Wie ich in anderen Fragen von Java-Anfängern gesehen habe, könnte es "direkt in deinem Gesicht" sein. Jede Hilfe wird geschätzt.Fehler: Unerlaubter Anfang des Ausdrucks

import java.util.Scanner; 

public class Sims 
{ 


    public static void main(String[] args) 
    { 
     //Class constructor 
     System.out.println("Enter a last name");   
     static Scanner name = new Scanner(System.in); 
      static String names1 = name.nextLine();//reading the input 
     static String last_name = names1; 
     intro(); 
    } 

    public static void intro() 
    { 
     System.out.println("I'm an instance! " + last_name); 
    } 
} 
+5

Lokale Variablen können nicht statisch sein. Entferne das Schlüsselwort von 'name',' names1' und 'last_name'. –

+0

'static' kann nur mit Klassenmitgliedern verwendet werden, nicht mit lokalen Variablen. Lassen Sie 'Intro'-Methode String-Parameter akzeptieren und' Last_name' als Argument übergeben. – Pshemo

+0

Auch in Ihrer 'intro' Methode versuchen Sie, von der' main' Methode auf die lokale Variable zuzugreifen (sobald Sie die statischen Deklarationen wie von anderen Kommentaren vorgeschlagen entfernen) – Stefan

Antwort

0

Entfernen Sie static von allen lokalen Variablen im Hauptbereich.

import java.util.Scanner; 

public class Sims 
{ 
    private String last_name; 

    public static void main(String[] args) 
    { 
     //Class constructor 
     System.out.println("Enter a last name");   
     Scanner name = new Scanner(System.in); 
     String names1 = name.nextLine();//reading the input 
     String last_name = names1; 
     intro(last_name); 
    } 

    public static void intro(String name) 
    { 
     System.out.println("I'm an instance! " + name); 
    } 
} 

Erfahren Sie, wenn static verwenden, https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html.

+0

Srry, ich meinte nicht Javadoc ... – Tacolibre

+0

Danke Andy! wusste nicht über die 'Code'-Sache. – Tacolibre

+0

Wenn Sie dieser Antwort folgen, enden Sie immer noch mit dem Compiler-Fehler "' last_name' kann nicht in eine Variable aufgelöst werden "in der' intro() 'Methode. – Andreas

Verwandte Themen