2016-11-14 3 views
-1

Я постоянно получаю эту ошибку при попытке скомпилировать эту программу - я знаю, что статические переменные являются переменными класса и не могут быть помещены в нестатические методы или переменные. Как я видел в других вопросах новичками java (как я), это могло бы быть «прямо на вашем лице». Любая помощь приветствуется.Ошибка: Незаконный Начало выражения

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

Локальные переменные не могут быть 'static'. Удалите это ключевое слово из 'name',' names1' и 'last_name'. –

+0

'static' может использоваться только с членами класса, а не с локальными переменными. Пусть 'intro' метод принимает строковый параметр и передает ему' last_name' в качестве аргумента. – Pshemo

+0

Также в вашем методе 'intro' вы пытаетесь получить доступ к локальной переменной из метода' main' (после удаления статических объявлений, как предложено другими комментариями) – Stefan

ответ

0

Удалить static из всех локальных переменных в основной области.

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); 
    } 
} 

Узнайте, когда использовать static, https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html.

+0

Счастье, я не имел в виду Javadoc ... – Tacolibre

+0

Спасибо Andy! не знал о «коде». – Tacolibre

+0

Если вы следуете этому ответу, вы по-прежнему получаете ошибку компилятора «' last_name' не может быть разрешено переменной »в методе' intro() '. – Andreas

Смежные вопросы