2016-11-14 4 views
-1

이 프로그램을 컴파일 할 때이 오류가 계속 발생합니다. 정적 변수는 클래스 전체 변수이며 비 정적 메서드 나 변수에 넣을 수 없습니다. 내가 자바와 같은 초보자들에 의해 다른 질문에서 보았 듯이, 그것은 당신의 얼굴에있을 수도 있습니다. 어떤 도움을 주셔서 감사합니다.오류 : 표현식이 잘못되었습니다.

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

로컬 변수는 '정적'일 수 없습니다. 'name','names1'과'last_name'에서 그 키워드를 제거하십시오. –

+0

'static'은 클래스 멤버에서만 사용할 수 있으며 로컬 변수에서는 사용할 수 없습니다. 'intro' 메쏘드가 문자열 매개 변수를 받아 들여서'last_name'을 인자로 넘겨줍니다. – Pshemo

+0

또한 여러분의'intro' 메소드에서'main' 메쏘드의 지역 변수에 접근하려합니다 (다른 주석에 의해 제안 된 바와 같이 정적 선언을 삭제하면) – Stefan

답변

0

기본 범위의 모든 로컬 변수에서 static을 제거하십시오. static, https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html를 사용하는 경우

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

알아 봅니다.

+0

Srry, 나는 Javadoc을 의미하지 않았다 ... – Tacolibre

+0

Thanks Andy! didnt는 '코드'물건에 대해 알고있다. – Tacolibre

+0

이 답변을 따르는 경우,'intro()'메소드의 컴파일러 오류''last_name''을 변수로 해석 할 수 없습니다. – Andreas

관련 문제